appos 0.2.4-0 → 0.3.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/event-Su-wo96Y.mjs +2 -0
- package/dist/bin/extract-blob-metadata-CPnQ5z-I.mjs +2 -0
- package/dist/bin/generate-image-variant-0jPXp8Gu.mjs +2 -0
- package/dist/bin/generate-preview-QDAk8NkM.mjs +2 -0
- package/dist/bin/main.mjs +13 -37
- package/dist/bin/{purge-attachment-CMlJMNOk.mjs → purge-attachment-BNMcVoEh.mjs} +1 -1
- package/dist/bin/{purge-audit-logs-hd6q6vnR.mjs → purge-audit-logs-C6bh2l3g.mjs} +1 -1
- package/dist/bin/{purge-unattached-blobs-BYv5b9R9.mjs → purge-unattached-blobs-CmLk3lNK.mjs} +1 -1
- package/dist/bin/{track-db-changes-q0Vl7Htm.mjs → track-db-changes-BUCo-YXD.mjs} +1 -1
- package/dist/bin/workflow-CsbetKWL.mjs +2 -0
- package/dist/exports/api/auth.mjs +1 -1
- package/dist/exports/api/constants.mjs +1 -0
- package/dist/exports/api/database.mjs +1 -1
- package/dist/exports/api/event.mjs +1 -1
- package/dist/exports/api/i18n.mjs +1 -1
- package/dist/exports/api/index.d.mts +2 -2
- package/dist/exports/api/index.mjs +1 -1
- package/dist/exports/api/instrumentation.mjs +1 -0
- package/dist/exports/api/middleware.mjs +1 -1
- package/dist/exports/api/openapi.d.mts +2 -2
- package/dist/exports/api/openapi.mjs +1 -1
- package/dist/exports/api/otel.d.mts +1 -1
- package/dist/exports/api/otel.mjs +1 -1
- package/dist/exports/api/workflow.mjs +1 -1
- package/dist/exports/api/workflows/api/event.mjs +1 -0
- package/dist/exports/api/workflows/{orm.d.mts → api/orm.d.mts} +1 -1
- package/dist/exports/api/workflows/{storage.d.mts → api/storage.d.mts} +1 -1
- package/dist/exports/api/workflows/api/workflow.mjs +1 -0
- package/dist/exports/api/workflows/constants.mjs +1 -0
- package/dist/exports/api/workflows/extract-blob-metadata.mjs +1 -1
- package/dist/exports/api/workflows/generate-image-variant.d.mts +2 -2
- package/dist/exports/api/workflows/generate-image-variant.mjs +1 -1
- package/dist/exports/api/workflows/generate-preview.mjs +1 -1
- package/dist/exports/api/workflows/purge-attachment.mjs +1 -1
- package/dist/exports/api/workflows/purge-audit-logs.mjs +1 -1
- package/dist/exports/api/workflows/purge-unattached-blobs.mjs +1 -1
- package/dist/exports/api/workflows/track-db-changes.d.mts +2 -2
- package/dist/exports/api/workflows/track-db-changes.mjs +1 -1
- package/dist/exports/cli/api/event.mjs +1 -1
- package/dist/exports/cli/api/workflow.mjs +1 -1
- package/dist/exports/cli/api/workflows/extract-blob-metadata.mjs +1 -1
- package/dist/exports/cli/api/workflows/generate-image-variant.mjs +1 -1
- package/dist/exports/cli/api/workflows/generate-preview.mjs +1 -1
- package/dist/exports/cli/constants.mjs +1 -0
- package/dist/exports/tests/api/app-context.mjs +1 -0
- package/dist/exports/tests/api/event.mjs +1 -0
- package/dist/exports/tests/{packages/appos/src/api → api}/index.d.mts +2 -2
- package/dist/exports/tests/api/middleware.mjs +1 -0
- package/dist/exports/tests/{packages/appos/src/api → api}/openapi.d.mts +2 -2
- package/dist/exports/tests/api/openapi.mjs +1 -0
- package/dist/exports/tests/{packages/appos/src/api → api}/orm.d.mts +1 -1
- package/dist/exports/tests/api/server.mjs +1 -0
- package/dist/exports/tests/api/workflow.mjs +1 -0
- package/dist/exports/tests/api/workflows/extract-blob-metadata.mjs +1 -0
- package/dist/exports/tests/api/workflows/generate-image-variant.mjs +1 -0
- package/dist/exports/tests/api/workflows/generate-preview.mjs +1 -0
- package/dist/exports/tests/api.d.mts +3 -3
- package/dist/exports/tests/api.mjs +1 -1
- package/dist/exports/tests/constants.mjs +1 -0
- package/dist/exports/tests/instrumentation.mjs +1 -0
- package/package.json +8 -10
- package/dist/bin/event-v2sCJkNd.mjs +0 -2
- package/dist/bin/extract-blob-metadata-TqNd9w-6.mjs +0 -2
- package/dist/bin/generate-image-variant-D8H9FxgD.mjs +0 -2
- package/dist/bin/generate-preview-5jLZLX6I.mjs +0 -2
- package/dist/bin/workflow-BagSlsMp.mjs +0 -2
- package/dist/exports/api/node_modules/.bun/change-case@5.4.4/node_modules/change-case/dist/index.mjs +0 -1
- package/dist/exports/api/packages/appos/src/constants.mjs +0 -1
- package/dist/exports/api/packages/appos/src/instrumentation.mjs +0 -1
- package/dist/exports/api/workflows/event.mjs +0 -1
- package/dist/exports/api/workflows/workflow.mjs +0 -1
- package/dist/exports/tests/node_modules/.bun/change-case@5.4.4/node_modules/change-case/dist/index.mjs +0 -1
- package/dist/exports/tests/node_modules/.bun/rate-limit-redis@4.3.1_f1fa5524233c9c60/node_modules/rate-limit-redis/dist/index.mjs +0 -25
- package/dist/exports/tests/packages/appos/src/api/event.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/api/middleware.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/api/server.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/api/workflow.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/api/workflows/extract-blob-metadata.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/api/workflows/generate-image-variant.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/api/workflows/generate-preview.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/constants.mjs +0 -1
- package/dist/exports/tests/packages/appos/src/instrumentation.mjs +0 -1
- /package/dist/exports/api/{packages/appos/src/instrumentation.d.mts → instrumentation.d.mts} +0 -0
- /package/dist/exports/api/{packages/appos/src/web → web}/auth.mjs +0 -0
- /package/dist/exports/api/workflows/{auth-schema.mjs → api/auth-schema.mjs} +0 -0
- /package/dist/exports/api/workflows/{auth.d.mts → api/auth.d.mts} +0 -0
- /package/dist/exports/api/workflows/{cache.d.mts → api/cache.d.mts} +0 -0
- /package/dist/exports/api/workflows/{config.d.mts → api/config.d.mts} +0 -0
- /package/dist/exports/api/workflows/{container.d.mts → api/container.d.mts} +0 -0
- /package/dist/exports/api/workflows/{database.d.mts → api/database.d.mts} +0 -0
- /package/dist/exports/api/workflows/{event.d.mts → api/event.d.mts} +0 -0
- /package/dist/exports/api/workflows/{logger.d.mts → api/logger.d.mts} +0 -0
- /package/dist/exports/api/workflows/{mailer.d.mts → api/mailer.d.mts} +0 -0
- /package/dist/exports/api/workflows/{redis.mjs → api/redis.mjs} +0 -0
- /package/dist/exports/api/workflows/{storage-schema.d.mts → api/storage-schema.d.mts} +0 -0
- /package/dist/exports/api/workflows/{workflow.d.mts → api/workflow.d.mts} +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/app-context.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/auth-schema.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/auth-schema.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/auth.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/cache.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/config.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/container.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/database.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/database.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/event.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/i18n.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/logger.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/mailer.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/error-handler.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/health.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/i18n.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/request-logger.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/request-logger.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/shutdown.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/timeout.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware/youch-handler.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/middleware.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/otel.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/redis.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/redis.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/storage-schema.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/storage.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/workflow.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/workflows/generate-image-variant.d.mts +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/workflows/purge-attachment.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/workflows/purge-audit-logs.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/workflows/purge-unattached-blobs.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/api → api}/workflows/track-db-changes.mjs +0 -0
- /package/dist/exports/tests/{packages/appos/src/instrumentation.d.mts → instrumentation.d.mts} +0 -0
package/dist/bin/main.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node --import=appos/instrumentation --no-warnings
|
|
2
|
-
import{n as loadEvents}from"./event-
|
|
3
|
-
`))},async task(name,fn){let start=Date.now(),result=await fn(),elapsed=Date.now()-start,maxWidth=45,suffix=`${elapsed}ms DONE`,dots=`.`.repeat(Math.max(1,45-name.length-suffix.length));return p.log.message(`${name} ${colors.dim(dots)} ${colors.green(suffix)}`,{symbol:colors.green(`◆`)}),result},taskStatus(name,status){let dots=`.`.repeat(Math.max(1,45-name.length-status.length));p.log.message(`${name} ${colors.dim(dots)} ${colors.dim(status)}`,{symbol:colors.dim(`◇`)})},warn(message){p.log.warn(message)}}}function defineCommand(def){return{aliases:def.aliases||[],description:def.description,args:def.args||[],opts:def.opts||{},run:def.run}}var build_default=defineCommand({description:`Build the application for production deployment`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`build`),ctx.outro()}});const migrationsSchema=`public`;function defineMigrationOpts(name,type=`schema`){let folder=type===`schema`?`schema-migrations`:`data-migrations`,table=type===`schema`?`schema-migrations`:`data-migrations`;return{migrationsFolder:`${join(APPOS_DIR,DATABASES_DIR)}/${name}/${folder}`,migrationsSchema:`public`,migrationsTable:table}}var require_error=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getDBOSErrorCode=exports.DBOSInvalidQueuePriorityError=exports.DBOSQueueDuplicatedError=exports.QueueDedupIDDuplicated=exports.DBOSAwaitedWorkflowCancelledError=exports.DBOSUnexpectedStepError=exports.DBOSConflictingRegistrationError=exports.DBOSWorkflowCancelledError=exports.DBOSMaxStepRetriesError=exports.DBOSConflictingWorkflowError=exports.DBOSInvalidWorkflowTransitionError=exports.DBOSExecutorNotInitializedError=exports.DBOSMaxRecoveryAttemptsExceededError=exports.DBOSFailLoadOperationsError=exports.DBOSNonExistentWorkflowError=exports.DBOSDebuggerError=exports.DBOSConfigKeyTypeError=exports.DBOSNotAuthorizedError=exports.DBOSDataValidationError=exports.DBOSNotRegisteredError=exports.DBOSWorkflowConflictError=exports.DBOSInitializationError=exports.DBOSError=exports.isDataValidationError=void 0;function isDataValidationError(e){let dbosErrorCode=e?.dbosErrorCode;return dbosErrorCode?dbosErrorCode===DataValidationError:!1}exports.isDataValidationError=isDataValidationError;var DBOSError=class extends Error{dbosErrorCode;constructor(msg,dbosErrorCode=1){super(msg),this.dbosErrorCode=dbosErrorCode}};exports.DBOSError=DBOSError;let InitializationError=3;exports.DBOSInitializationError=class extends DBOSError{error;constructor(msg,error){super(msg,3),this.error=error}};let ConflictingWFIDError=5;exports.DBOSWorkflowConflictError=class extends DBOSError{constructor(workflowID){super(`Conflicting WF ID ${workflowID}`,5)}};let NotRegisteredError=6;exports.DBOSNotRegisteredError=class extends DBOSError{constructor(name,fullmsg){let msg=fullmsg??`Operation (Name: ${name}) not registered`;super(msg,6)}};let DataValidationError=9;exports.DBOSDataValidationError=class extends DBOSError{constructor(msg){super(msg,9)}};let NotAuthorizedError=12;exports.DBOSNotAuthorizedError=class extends DBOSError{status;constructor(msg,status=403){super(msg,12),this.status=status}};let ConfigKeyTypeError=14;exports.DBOSConfigKeyTypeError=class extends DBOSError{constructor(configKey,expectedType,actualType){super(`${configKey} should be of type ${expectedType}, but got ${actualType}`,14)}};let DebuggerError=15;exports.DBOSDebuggerError=class extends DBOSError{constructor(msg){super(`DEBUGGER: `+msg,15)}};let NonExistentWorkflowError=16;exports.DBOSNonExistentWorkflowError=class extends DBOSError{constructor(msg){super(msg,16)}};let FailLoadOperationsError=17;exports.DBOSFailLoadOperationsError=class extends DBOSError{constructor(msg){super(msg,17)}};let MaxRecoveryAttemptsExceededError=18;exports.DBOSMaxRecoveryAttemptsExceededError=class extends DBOSError{constructor(workflowID,maxRetries){super(`Workflow ${workflowID} has exceeded its maximum of ${maxRetries} execution or recovery attempts. Further attempts to execute or recover it will fail.`,18)}};let ExecutorNotInitializedError=20;exports.DBOSExecutorNotInitializedError=class extends DBOSError{constructor(){super(`DBOS not initialized`,20)}};let InvalidWorkflowTransition=21;exports.DBOSInvalidWorkflowTransitionError=class extends DBOSError{constructor(msg){super(msg??`Invalid workflow state`,21)}};let ConflictingWorkflowError=22;exports.DBOSConflictingWorkflowError=class extends DBOSError{constructor(workflowID,msg){super(`Conflicting workflow invocation with the same ID (${workflowID}): ${msg}`,22)}};let MaximumRetriesError=23;exports.DBOSMaxStepRetriesError=class extends DBOSError{errors;constructor(stepName,maxRetries,errors){let formattedErrors=errors.map((error,index)=>`Error ${index+1}: ${error.message}`).join(`. `);super(`Step ${stepName} has exceeded its maximum of ${maxRetries} retries. Previous errors: ${formattedErrors}`,23),this.errors=errors}};let WorkFlowCancelled=24;exports.DBOSWorkflowCancelledError=class extends DBOSError{workflowID;constructor(workflowID){super(`Workflow ${workflowID} has been cancelled`,24),this.workflowID=workflowID}};let ConflictingRegistrationError=25;exports.DBOSConflictingRegistrationError=class extends DBOSError{constructor(msg){super(msg,25)}};let UnexpectedStep=26;exports.DBOSUnexpectedStepError=class extends DBOSError{workflowID;stepID;expectedName;constructor(workflowID,stepID,expectedName,recordedName){super(`During execution of workflow ${workflowID} step ${stepID}, function ${recordedName} was recorded when ${expectedName} was expected. Check that your workflow is deterministic.`,26),this.workflowID=workflowID,this.stepID=stepID,this.expectedName=expectedName}};let TargetWorkFlowCancelled=27;exports.DBOSAwaitedWorkflowCancelledError=class extends DBOSError{workflowID;constructor(workflowID){super(`Awaited ${workflowID} was cancelled`,27),this.workflowID=workflowID}},exports.QueueDedupIDDuplicated=28,exports.DBOSQueueDuplicatedError=class extends DBOSError{workflowID;queue;deduplicationID;constructor(workflowID,queue,deduplicationID){super(`Workflow ${workflowID} was deduplicated due to an existing workflow in queue ${queue} with deduplication ID ${deduplicationID}.`,exports.QueueDedupIDDuplicated),this.workflowID=workflowID,this.queue=queue,this.deduplicationID=deduplicationID}};let InvalidQueuePriority=29;exports.DBOSInvalidQueuePriorityError=class extends DBOSError{priority;min;max;constructor(priority,min,max){super(`Invalid priority ${priority}. Priority must be between ${min} and ${max}.`,29),this.priority=priority,this.min=min,this.max=max}};function getDBOSErrorCode(e){if(e&&typeof e==`object`&&`dbosErrorCode`in e){let code=e.dbosErrorCode;return typeof code==`number`?code:void 0}}exports.getDBOSErrorCode=getDBOSErrorCode})),require_utils$3=__commonJSMin((exports=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getClientConfig=exports.interceptStreams=exports.exhaustiveCheckGuard=exports.serializeFunctionInputOutput=exports.DBOSJSON=exports.SERIALIZER_MARKER_VALUE=exports.SERIALIZER_MARKER_KEY=exports.DBOSJSONLegacy=exports.DBOSReviver=exports.DBOSReplacer=exports.cancellableSleep=exports.DEBOUNCER_WORKLOW_NAME=exports.INTERNAL_QUEUE_NAME=exports.sleepms=exports.globalParams=exports.defaultEnableOTLP=exports.readFile=exports.registerSerializationRecipe=void 0;let node_fs_1=__importDefault(__require(`node:fs`)),node_path_1=__importDefault(__require(`node:path`)),superjson_1=__importDefault(__require(`superjson`));function registerSerializationRecipe(r){superjson_1.default.registerCustom(r,r.name)}exports.registerSerializationRecipe=registerSerializationRecipe,registerSerializationRecipe({isApplicable:v=>Buffer.isBuffer(v),serialize:v=>Array.from(v),deserialize:v=>Buffer.from(v),name:`Buffer`});async function readFile(path$2,encoding=`utf8`){return await node_fs_1.default.promises.readFile(path$2,{encoding})}exports.readFile=readFile;function loadDbosVersion(){try{function findPackageRoot(start){if(typeof start==`string`&&(start.endsWith(node_path_1.default.sep)||(start+=node_path_1.default.sep),start=start.split(node_path_1.default.sep)),start.length===0)throw Error(`package.json not found in path`);start.pop();let dir=start.join(node_path_1.default.sep);return node_fs_1.default.existsSync(node_path_1.default.join(dir,`package.json`))?dir:findPackageRoot(start)}return __require(node_path_1.default.join(findPackageRoot(__dirname),`package.json`)).version}catch{return`unknown`}}function defaultEnableOTLP(){return process.env.DBOS__CLOUD===`true`}exports.defaultEnableOTLP=defaultEnableOTLP,exports.globalParams={appVersion:process.env.DBOS__APPVERSION||``,wasComputed:!1,executorID:process.env.DBOS__VMID||`local`,appID:process.env.DBOS__APPID||``,enableOTLP:defaultEnableOTLP(),dbosVersion:loadDbosVersion()},exports.sleepms=ms=>new Promise(r=>setTimeout(r,ms)),exports.INTERNAL_QUEUE_NAME=`_dbos_internal_queue`,exports.DEBOUNCER_WORKLOW_NAME=`_dbos_debouncer_workflow`;function cancellableSleep(ms){let timeoutId,resolvePromise,resolved=!1;return{promise:new Promise(resolve=>{resolvePromise=()=>{resolved||(resolved=!0,resolve(),timeoutId=void 0)},timeoutId=setTimeout(resolvePromise,ms)}),cancel:()=>{timeoutId&&(clearTimeout(timeoutId),timeoutId=void 0,resolvePromise())}}}exports.cancellableSleep=cancellableSleep;function DBOSReplacer(key,value){let actualValue=this[key];return actualValue instanceof Date?{dbos_type:`dbos_Date`,dbos_data:actualValue.toISOString()}:typeof actualValue==`bigint`?{dbos_type:`dbos_BigInt`,dbos_data:actualValue.toString()}:value}exports.DBOSReplacer=DBOSReplacer;function isSerializedBuffer(value){return typeof value==`object`&&!!value&&value.type===`Buffer`}function isSerializedDate(value){return typeof value==`object`&&!!value&&value.dbos_type===`dbos_Date`}function isSerializedBigInt(value){return typeof value==`object`&&!!value&&value.dbos_type===`dbos_BigInt`}function DBOSReviver(_key,value){switch(!0){case isSerializedBuffer(value):return Buffer.from(value.data);case isSerializedDate(value):return new Date(Date.parse(value.dbos_data));case isSerializedBigInt(value):return BigInt(value.dbos_data);default:return value}}exports.DBOSReviver=DBOSReviver,exports.DBOSJSONLegacy={parse:text=>text===null?null:JSON.parse(text,DBOSReviver),stringify:value=>JSON.stringify(value,DBOSReplacer)},exports.SERIALIZER_MARKER_KEY=`__dbos_serializer`,exports.SERIALIZER_MARKER_VALUE=`superjson`;let SERIALIZER_MARKER_STRING=`"${exports.SERIALIZER_MARKER_KEY}":"${exports.SERIALIZER_MARKER_VALUE}"`;function isDBOSBrandedSuperjsonRecord(obj){return typeof obj==`object`&&!!obj&&exports.SERIALIZER_MARKER_KEY in obj&&obj[exports.SERIALIZER_MARKER_KEY]===exports.SERIALIZER_MARKER_VALUE&&`json`in obj}function sjstringify(value){let serialized=superjson_1.default.serialize(value);return JSON.stringify({...serialized,[exports.SERIALIZER_MARKER_KEY]:exports.SERIALIZER_MARKER_VALUE})}exports.DBOSJSON={parse:text=>{if(text==null)return null;if(text.includes(SERIALIZER_MARKER_STRING)){let vanillaParsed=JSON.parse(text);if(isDBOSBrandedSuperjsonRecord(vanillaParsed))return superjson_1.default.deserialize(vanillaParsed)}return exports.DBOSJSONLegacy.parse(text)},stringify:sjstringify};function serializeFunctionInputOutput(value,path$2=[]){let stringified=exports.DBOSJSON.stringify(value),deserialized=exports.DBOSJSON.parse(stringified);return isObjectish(deserialized)&&attachFunctionStubs(value,deserialized,path$2),{deserialized,stringified}}exports.serializeFunctionInputOutput=serializeFunctionInputOutput;function attachFunctionStubs(original,deserialized,path$2=[]){let seen=new WeakSet,pairQueue=[{o:original,d:deserialized,p:path$2}];for(;pairQueue.length;){let{o,d,p:p$1}=pairQueue.pop();if(!seen.has(o)){seen.add(o);for(let key of collectFunctionKeys(o))key in d||defineThrowingStub(d,key,p$1);for(let key of getAllKeys(o))try{let childO=o[key],childD=d[key];if(!shouldRecurse(childO,childD))continue;pairQueue.push({o:childO,d:childD,p:[...p$1,key]})}catch{}if(o instanceof Map&&d instanceof Map)for(let[k,vO]of o){let vD=d.get(k);if(shouldRecurse(vO,vD)){let step=isIndexableKey(k)?String(k):`[MapValue]`;pairQueue.push({o:vO,d:vD,p:[...p$1,step]})}}if(o instanceof Set&&d instanceof Set){let arrO=Array.from(o),arrD=Array.from(d);for(let i=0;i<Math.min(arrO.length,arrD.length);i++){let vO=arrO[i],vD=arrD[i];shouldRecurse(vO,vD)&&pairQueue.push({o:vO,d:vD,p:[...p$1,i]})}}}}}function isObjectish(v){return typeof v==`object`&&!!v||typeof v==`function`}function defineThrowingStub(target,key,path$2){let stub=function(..._args){throw Error(`Attempted to call '${String(key)}' at path ${formatPath(path$2)} on an object that is a serialized function input our output value. Functions are not preserved through serialization; see 'DBOS.registerSerialization'. `)};try{Object.defineProperty(target,key,{value:stub,configurable:!0,writable:!1,enumerable:!1})}catch{target[key]=stub}}function shouldRecurse(a,b){return!(!a||!b||typeof a!=`object`||typeof b!=`object`||[Date,RegExp,WeakMap,WeakSet,ArrayBuffer,DataView].some(t=>a instanceof t))}function getAllKeys(obj){let names=Object.getOwnPropertyNames(obj),syms=Object.getOwnPropertySymbols(obj);return[...names,...syms]}function collectFunctionKeys(obj){let keys=new Set;for(let k of getAllKeys(obj)){let d=Object.getOwnPropertyDescriptor(obj,k);d&&`value`in d&&typeof d.value==`function`&&keys.add(k)}let proto=Object.getPrototypeOf(obj);for(;proto&&proto!==Object.prototype;){for(let k of Object.getOwnPropertyNames(proto)){if(k===`constructor`)continue;let d=Object.getOwnPropertyDescriptor(proto,k);d&&`value`in d&&typeof d.value==`function`&&keys.add(k)}proto=Object.getPrototypeOf(proto)}return Array.from(keys)}function formatPath(path$2){return path$2.length===0?`(root)`:path$2.map(seg=>typeof seg==`number`?`[${seg}]`:typeof seg==`symbol`?`[${String(seg)}]`:/^<?[A-Za-z_$][A-Za-z0-9_$]*>?$/.test(seg)?`.${seg}`:`[${JSON.stringify(seg)}]`).join(``).replace(/^\./,``)}function isIndexableKey(k){return typeof k==`string`||typeof k==`number`}function exhaustiveCheckGuard(_){throw Error(`Exaustive matching is not applied`)}exports.exhaustiveCheckGuard=exhaustiveCheckGuard;let originalStdoutWrite=process.stdout.write.bind(process.stdout),originalStderrWrite=process.stderr.write.bind(process.stderr);function interceptStreams(onMessage){let intercept=(stream,originalWrite)=>(chunk,encodingOrCb,cb)=>(onMessage(chunk.toString(),stream),typeof encodingOrCb==`function`?originalWrite(chunk,encodingOrCb):originalWrite(chunk,encodingOrCb,cb));process.stdout.write=intercept(`stdout`,originalStdoutWrite),process.stderr.write=intercept(`stderr`,originalStderrWrite)}exports.interceptStreams=interceptStreams;function getClientConfig(databaseUrl){let connectionString=typeof databaseUrl==`string`?databaseUrl:databaseUrl.toString(),timeout=getTimeout(typeof databaseUrl==`string`?new URL(databaseUrl):databaseUrl);return{connectionString,connectionTimeoutMillis:timeout?timeout*1e3:1e4};function getTimeout(url$1){try{let $timeout=url$1.searchParams.get(`connect_timeout`);return $timeout?Number.parseInt($timeout,10):void 0}catch{return}}}exports.getClientConfig=getClientConfig})),require_context=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.runInStepContext=exports.runWithDataSourceContext=exports.runWithParentContext=exports.runWithTopContext=exports.functionIDGetIncrement=exports.getNextWFID=exports.getCurrentContextStore=exports.isInWorkflowCtx=void 0;let async_hooks_1$1=__require(`async_hooks`),error_1=require_error(),dbos_executor_1=require_dbos_executor();function isWithinWorkflowCtx(ctx){return ctx.workflowId!==void 0}function isInStepCtx(ctx){return ctx.workflowId===void 0?!1:!!ctx.curStepFunctionId}function isInTxnCtx(ctx){return ctx.workflowId===void 0?!1:!!ctx.curTxFunctionId}function isInWorkflowCtx(ctx){return!(!isWithinWorkflowCtx(ctx)||isInStepCtx(ctx)||isInTxnCtx(ctx))}exports.isInWorkflowCtx=isInWorkflowCtx;let asyncLocalCtx=new async_hooks_1$1.AsyncLocalStorage;function getCurrentContextStore(){return asyncLocalCtx.getStore()}exports.getCurrentContextStore=getCurrentContextStore;function getNextWFID(assignedID){let wfId=assignedID;if(!wfId){let pctx=getCurrentContextStore(),nextID=pctx?.idAssignedForNextWorkflow;nextID&&(wfId=nextID,pctx.idAssignedForNextWorkflow=void 0)}return wfId}exports.getNextWFID=getNextWFID;function functionIDGetIncrement(){let pctx=getCurrentContextStore();if(!pctx)throw new error_1.DBOSInvalidWorkflowTransitionError(`Attempt to get a call ID number outside of a workflow`);if(!isInWorkflowCtx(pctx))throw new error_1.DBOSInvalidWorkflowTransitionError(`Attempt to get a call ID number in a workflow that is already in a call`);return pctx.curWFFunctionId===void 0&&(pctx.curWFFunctionId=0),pctx.curWFFunctionId++}exports.functionIDGetIncrement=functionIDGetIncrement;async function runWithTopContext(ctx,callback){return await asyncLocalCtx.run(ctx,callback)}exports.runWithTopContext=runWithTopContext;async function runWithParentContext(pctx,ctx,callback){return await asyncLocalCtx.run({...pctx,...ctx,parentCtx:pctx},callback)}exports.runWithParentContext=runWithParentContext;async function runWithDataSourceContext(callnum,callback){let pctx=getCurrentContextStore()??{};return await asyncLocalCtx.run({...pctx,curTxFunctionId:callnum,parentCtx:pctx,logger:dbos_executor_1.DBOSExecutor.globalInstance.ctxLogger},callback)}exports.runWithDataSourceContext=runWithDataSourceContext;async function runInStepContext(pctx,stepID,maxAttempts,currentAttempt,callback){if(!pctx||!isInWorkflowCtx(pctx))throw new error_1.DBOSInvalidWorkflowTransitionError;return await runWithParentContext(pctx,{stepStatus:{stepID,currentAttempt,maxAttempts:currentAttempt?maxAttempts:void 0},curStepFunctionId:stepID,parentCtx:pctx,logger:dbos_executor_1.DBOSExecutor.globalInstance.ctxLogger},callback)}exports.runInStepContext=runInStepContext})),require_AbstractAsyncHooksContextManager=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AbstractAsyncHooksContextManager=void 0;let events_1=__require(`events`),ADD_LISTENER_METHODS=[`addListener`,`on`,`once`,`prependListener`,`prependOnceListener`];exports.AbstractAsyncHooksContextManager=class{bind(context$1,target){return target instanceof events_1.EventEmitter?this._bindEventEmitter(context$1,target):typeof target==`function`?this._bindFunction(context$1,target):target}_bindFunction(context$1,target){let manager=this,contextWrapper=function(...args){return manager.with(context$1,()=>target.apply(this,args))};return Object.defineProperty(contextWrapper,`length`,{enumerable:!1,configurable:!0,writable:!1,value:target.length}),contextWrapper}_bindEventEmitter(context$1,ee){return this._getPatchMap(ee)===void 0?(this._createPatchMap(ee),ADD_LISTENER_METHODS.forEach(methodName=>{ee[methodName]!==void 0&&(ee[methodName]=this._patchAddListener(ee,ee[methodName],context$1))}),typeof ee.removeListener==`function`&&(ee.removeListener=this._patchRemoveListener(ee,ee.removeListener)),typeof ee.off==`function`&&(ee.off=this._patchRemoveListener(ee,ee.off)),typeof ee.removeAllListeners==`function`&&(ee.removeAllListeners=this._patchRemoveAllListeners(ee,ee.removeAllListeners)),ee):ee}_patchRemoveListener(ee,original){let contextManager=this;return function(event,listener){let events=contextManager._getPatchMap(ee)?.[event];if(events===void 0)return original.call(this,event,listener);let patchedListener=events.get(listener);return original.call(this,event,patchedListener||listener)}}_patchRemoveAllListeners(ee,original){let contextManager=this;return function(event){let map=contextManager._getPatchMap(ee);return map!==void 0&&(arguments.length===0?contextManager._createPatchMap(ee):map[event]!==void 0&&delete map[event]),original.apply(this,arguments)}}_patchAddListener(ee,original,context$1){let contextManager=this;return function(event,listener){if(contextManager._wrapped)return original.call(this,event,listener);let map=contextManager._getPatchMap(ee);map===void 0&&(map=contextManager._createPatchMap(ee));let listeners=map[event];listeners===void 0&&(listeners=new WeakMap,map[event]=listeners);let patchedListener=contextManager.bind(context$1,listener);listeners.set(listener,patchedListener),contextManager._wrapped=!0;try{return original.call(this,event,patchedListener)}finally{contextManager._wrapped=!1}}}_createPatchMap(ee){let map=Object.create(null);return ee[this._kOtListeners]=map,map}_getPatchMap(ee){return ee[this._kOtListeners]}_kOtListeners=Symbol(`OtListeners`);_wrapped=!1}})),require_AsyncHooksContextManager=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AsyncHooksContextManager=void 0;let api_1$26=__require(`@opentelemetry/api`),asyncHooks=__require(`async_hooks`),AbstractAsyncHooksContextManager_1=require_AbstractAsyncHooksContextManager();exports.AsyncHooksContextManager=class extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=asyncHooks.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??api_1$26.ROOT_CONTEXT}with(context$1,fn,thisArg,...args){this._enterContext(context$1);try{return fn.call(thisArg,...args)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(uid,type){if(type===`TIMERWRAP`)return;let context$1=this._stack[this._stack.length-1];context$1!==void 0&&this._contexts.set(uid,context$1)}_destroy(uid){this._contexts.delete(uid)}_before(uid){let context$1=this._contexts.get(uid);context$1!==void 0&&this._enterContext(context$1)}_after(){this._exitContext()}_enterContext(context$1){this._stack.push(context$1)}_exitContext(){this._stack.pop()}}})),require_AsyncLocalStorageContextManager=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AsyncLocalStorageContextManager=void 0;let api_1$25=__require(`@opentelemetry/api`),async_hooks_1=__require(`async_hooks`),AbstractAsyncHooksContextManager_1=require_AbstractAsyncHooksContextManager();exports.AsyncLocalStorageContextManager=class extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new async_hooks_1.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??api_1$25.ROOT_CONTEXT}with(context$1,fn,thisArg,...args){let cb=thisArg==null?fn:fn.bind(thisArg);return this._asyncLocalStorage.run(context$1,cb,...args)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}}})),require_src$9=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AsyncLocalStorageContextManager=exports.AsyncHooksContextManager=void 0;var AsyncHooksContextManager_1=require_AsyncHooksContextManager();Object.defineProperty(exports,`AsyncHooksContextManager`,{enumerable:!0,get:function(){return AsyncHooksContextManager_1.AsyncHooksContextManager}});var AsyncLocalStorageContextManager_1=require_AsyncLocalStorageContextManager();Object.defineProperty(exports,`AsyncLocalStorageContextManager`,{enumerable:!0,get:function(){return AsyncLocalStorageContextManager_1.AsyncLocalStorageContextManager}})})),require_suppress_tracing=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isTracingSuppressed=exports.unsuppressTracing=exports.suppressTracing=void 0;let SUPPRESS_TRACING_KEY=(0,__require(`@opentelemetry/api`).createContextKey)(`OpenTelemetry SDK Context Key SUPPRESS_TRACING`);function suppressTracing(context$1){return context$1.setValue(SUPPRESS_TRACING_KEY,!0)}exports.suppressTracing=suppressTracing;function unsuppressTracing(context$1){return context$1.deleteValue(SUPPRESS_TRACING_KEY)}exports.unsuppressTracing=unsuppressTracing;function isTracingSuppressed(context$1){return context$1.getValue(SUPPRESS_TRACING_KEY)===!0}exports.isTracingSuppressed=isTracingSuppressed})),require_constants$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BAGGAGE_MAX_TOTAL_LENGTH=exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=exports.BAGGAGE_MAX_NAME_VALUE_PAIRS=exports.BAGGAGE_HEADER=exports.BAGGAGE_ITEMS_SEPARATOR=exports.BAGGAGE_PROPERTIES_SEPARATOR=exports.BAGGAGE_KEY_PAIR_SEPARATOR=void 0,exports.BAGGAGE_KEY_PAIR_SEPARATOR=`=`,exports.BAGGAGE_PROPERTIES_SEPARATOR=`;`,exports.BAGGAGE_ITEMS_SEPARATOR=`,`,exports.BAGGAGE_HEADER=`baggage`,exports.BAGGAGE_MAX_NAME_VALUE_PAIRS=180,exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096,exports.BAGGAGE_MAX_TOTAL_LENGTH=8192})),require_utils$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.parseKeyPairsIntoRecord=exports.parsePairKeyValue=exports.getKeyPairs=exports.serializeKeyPairs=void 0;let api_1$24=__require(`@opentelemetry/api`),constants_1=require_constants$1();function serializeKeyPairs(keyPairs){return keyPairs.reduce((hValue,current)=>{let value=`${hValue}${hValue===``?``:constants_1.BAGGAGE_ITEMS_SEPARATOR}${current}`;return value.length>constants_1.BAGGAGE_MAX_TOTAL_LENGTH?hValue:value},``)}exports.serializeKeyPairs=serializeKeyPairs;function getKeyPairs(baggage){return baggage.getAllEntries().map(([key,value])=>{let entry=`${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;return value.metadata!==void 0&&(entry+=constants_1.BAGGAGE_PROPERTIES_SEPARATOR+value.metadata.toString()),entry})}exports.getKeyPairs=getKeyPairs;function parsePairKeyValue(entry){let valueProps=entry.split(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);if(valueProps.length<=0)return;let keyPairPart=valueProps.shift();if(!keyPairPart)return;let separatorIndex=keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);if(separatorIndex<=0)return;let key=decodeURIComponent(keyPairPart.substring(0,separatorIndex).trim()),value=decodeURIComponent(keyPairPart.substring(separatorIndex+1).trim()),metadata;return valueProps.length>0&&(metadata=(0,api_1$24.baggageEntryMetadataFromString)(valueProps.join(constants_1.BAGGAGE_PROPERTIES_SEPARATOR))),{key,value,metadata}}exports.parsePairKeyValue=parsePairKeyValue;function parseKeyPairsIntoRecord(value){let result={};return typeof value==`string`&&value.length>0&&value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry=>{let keyPair=parsePairKeyValue(entry);keyPair!==void 0&&keyPair.value.length>0&&(result[keyPair.key]=keyPair.value)}),result}exports.parseKeyPairsIntoRecord=parseKeyPairsIntoRecord})),require_W3CBaggagePropagator=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.W3CBaggagePropagator=void 0;let api_1$23=__require(`@opentelemetry/api`),suppress_tracing_1=require_suppress_tracing(),constants_1=require_constants$1(),utils_1=require_utils$2();exports.W3CBaggagePropagator=class{inject(context$1,carrier,setter){let baggage=api_1$23.propagation.getBaggage(context$1);if(!baggage||(0,suppress_tracing_1.isTracingSuppressed)(context$1))return;let keyPairs=(0,utils_1.getKeyPairs)(baggage).filter(pair=>pair.length<=constants_1.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,constants_1.BAGGAGE_MAX_NAME_VALUE_PAIRS),headerValue=(0,utils_1.serializeKeyPairs)(keyPairs);headerValue.length>0&&setter.set(carrier,constants_1.BAGGAGE_HEADER,headerValue)}extract(context$1,carrier,getter){let headerValue=getter.get(carrier,constants_1.BAGGAGE_HEADER),baggageString=Array.isArray(headerValue)?headerValue.join(constants_1.BAGGAGE_ITEMS_SEPARATOR):headerValue;if(!baggageString)return context$1;let baggage={};return baggageString.length===0||(baggageString.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry=>{let keyPair=(0,utils_1.parsePairKeyValue)(entry);if(keyPair){let baggageEntry={value:keyPair.value};keyPair.metadata&&(baggageEntry.metadata=keyPair.metadata),baggage[keyPair.key]=baggageEntry}}),Object.entries(baggage).length===0)?context$1:api_1$23.propagation.setBaggage(context$1,api_1$23.propagation.createBaggage(baggage))}fields(){return[constants_1.BAGGAGE_HEADER]}}})),require_anchored_clock=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AnchoredClock=void 0,exports.AnchoredClock=class{_monotonicClock;_epochMillis;_performanceMillis;constructor(systemClock,monotonicClock){this._monotonicClock=monotonicClock,this._epochMillis=systemClock.now(),this._performanceMillis=monotonicClock.now()}now(){let delta=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+delta}}})),require_attributes=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isAttributeValue=exports.isAttributeKey=exports.sanitizeAttributes=void 0;let api_1$22=__require(`@opentelemetry/api`);function sanitizeAttributes(attributes){let out={};if(typeof attributes!=`object`||!attributes)return out;for(let key in attributes){if(!Object.prototype.hasOwnProperty.call(attributes,key))continue;if(!isAttributeKey(key)){api_1$22.diag.warn(`Invalid attribute key: ${key}`);continue}let val=attributes[key];if(!isAttributeValue(val)){api_1$22.diag.warn(`Invalid attribute value set for key: ${key}`);continue}Array.isArray(val)?out[key]=val.slice():out[key]=val}return out}exports.sanitizeAttributes=sanitizeAttributes;function isAttributeKey(key){return typeof key==`string`&&key!==``}exports.isAttributeKey=isAttributeKey;function isAttributeValue(val){return val==null?!0:Array.isArray(val)?isHomogeneousAttributeValueArray(val):isValidPrimitiveAttributeValueType(typeof val)}exports.isAttributeValue=isAttributeValue;function isHomogeneousAttributeValueArray(arr){let type;for(let element of arr){if(element==null)continue;let elementType=typeof element;if(elementType!==type){if(!type){if(isValidPrimitiveAttributeValueType(elementType)){type=elementType;continue}return!1}return!1}}return!0}function isValidPrimitiveAttributeValueType(valType){switch(valType){case`number`:case`boolean`:case`string`:return!0}return!1}})),require_logging_error_handler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.loggingErrorHandler=void 0;let api_1$21=__require(`@opentelemetry/api`);function loggingErrorHandler(){return ex=>{api_1$21.diag.error(stringifyException(ex))}}exports.loggingErrorHandler=loggingErrorHandler;function stringifyException(ex){return typeof ex==`string`?ex:JSON.stringify(flattenException(ex))}function flattenException(ex){let result={},current=ex;for(;current!==null;)Object.getOwnPropertyNames(current).forEach(propertyName=>{if(result[propertyName])return;let value=current[propertyName];value&&(result[propertyName]=String(value))}),current=Object.getPrototypeOf(current);return result}})),require_global_error_handler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.globalErrorHandler=exports.setGlobalErrorHandler=void 0;let delegateHandler=(0,require_logging_error_handler().loggingErrorHandler)();function setGlobalErrorHandler(handler){delegateHandler=handler}exports.setGlobalErrorHandler=setGlobalErrorHandler;function globalErrorHandler(ex){try{delegateHandler(ex)}catch{}}exports.globalErrorHandler=globalErrorHandler})),require_environment=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getStringListFromEnv=exports.getBooleanFromEnv=exports.getStringFromEnv=exports.getNumberFromEnv=void 0;let api_1$20=__require(`@opentelemetry/api`),util_1=__require(`util`);function getNumberFromEnv(key){let raw=process.env[key];if(raw==null||raw.trim()===``)return;let value=Number(raw);if(isNaN(value)){api_1$20.diag.warn(`Unknown value ${(0,util_1.inspect)(raw)} for ${key}, expected a number, using defaults`);return}return value}exports.getNumberFromEnv=getNumberFromEnv;function getStringFromEnv(key){let raw=process.env[key];if(!(raw==null||raw.trim()===``))return raw}exports.getStringFromEnv=getStringFromEnv;function getBooleanFromEnv(key){let raw=process.env[key]?.trim().toLowerCase();return raw==null||raw===``?!1:raw===`true`?!0:(raw===`false`||api_1$20.diag.warn(`Unknown value ${(0,util_1.inspect)(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}exports.getBooleanFromEnv=getBooleanFromEnv;function getStringListFromEnv(key){return getStringFromEnv(key)?.split(`,`).map(v=>v.trim()).filter(s=>s!==``)}exports.getStringListFromEnv=getStringListFromEnv})),require_globalThis$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0,exports._globalThis=typeof globalThis==`object`?globalThis:global})),require_performance=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.otperformance=void 0,exports.otperformance=__require(`perf_hooks`).performance})),require_version=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.VERSION=void 0,exports.VERSION=`2.2.0`})),require_semconv=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ATTR_PROCESS_RUNTIME_NAME=void 0,exports.ATTR_PROCESS_RUNTIME_NAME=`process.runtime.name`})),require_sdk_info=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SDK_INFO=void 0;let version_1=require_version(),semantic_conventions_1$1=__require(`@opentelemetry/semantic-conventions`),semconv_1=require_semconv();exports.SDK_INFO={[semantic_conventions_1$1.ATTR_TELEMETRY_SDK_NAME]:`opentelemetry`,[semconv_1.ATTR_PROCESS_RUNTIME_NAME]:`node`,[semantic_conventions_1$1.ATTR_TELEMETRY_SDK_LANGUAGE]:semantic_conventions_1$1.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[semantic_conventions_1$1.ATTR_TELEMETRY_SDK_VERSION]:version_1.VERSION}})),require_node$5=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SDK_INFO=exports.otperformance=exports._globalThis=exports.getStringListFromEnv=exports.getNumberFromEnv=exports.getBooleanFromEnv=exports.getStringFromEnv=void 0;var environment_1=require_environment();Object.defineProperty(exports,`getStringFromEnv`,{enumerable:!0,get:function(){return environment_1.getStringFromEnv}}),Object.defineProperty(exports,`getBooleanFromEnv`,{enumerable:!0,get:function(){return environment_1.getBooleanFromEnv}}),Object.defineProperty(exports,`getNumberFromEnv`,{enumerable:!0,get:function(){return environment_1.getNumberFromEnv}}),Object.defineProperty(exports,`getStringListFromEnv`,{enumerable:!0,get:function(){return environment_1.getStringListFromEnv}});var globalThis_1=require_globalThis$1();Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return globalThis_1._globalThis}});var performance_1=require_performance();Object.defineProperty(exports,`otperformance`,{enumerable:!0,get:function(){return performance_1.otperformance}});var sdk_info_1=require_sdk_info();Object.defineProperty(exports,`SDK_INFO`,{enumerable:!0,get:function(){return sdk_info_1.SDK_INFO}})})),require_platform$5=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getStringListFromEnv=exports.getNumberFromEnv=exports.getStringFromEnv=exports.getBooleanFromEnv=exports.otperformance=exports._globalThis=exports.SDK_INFO=void 0;var node_1=require_node$5();Object.defineProperty(exports,`SDK_INFO`,{enumerable:!0,get:function(){return node_1.SDK_INFO}}),Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return node_1._globalThis}}),Object.defineProperty(exports,`otperformance`,{enumerable:!0,get:function(){return node_1.otperformance}}),Object.defineProperty(exports,`getBooleanFromEnv`,{enumerable:!0,get:function(){return node_1.getBooleanFromEnv}}),Object.defineProperty(exports,`getStringFromEnv`,{enumerable:!0,get:function(){return node_1.getStringFromEnv}}),Object.defineProperty(exports,`getNumberFromEnv`,{enumerable:!0,get:function(){return node_1.getNumberFromEnv}}),Object.defineProperty(exports,`getStringListFromEnv`,{enumerable:!0,get:function(){return node_1.getStringListFromEnv}})})),require_time=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.addHrTimes=exports.isTimeInput=exports.isTimeInputHrTime=exports.hrTimeToMicroseconds=exports.hrTimeToMilliseconds=exports.hrTimeToNanoseconds=exports.hrTimeToTimeStamp=exports.hrTimeDuration=exports.timeInputToHrTime=exports.hrTime=exports.getTimeOrigin=exports.millisToHrTime=void 0;let platform_1=require_platform$5(),NANOSECOND_DIGITS=9,MILLISECONDS_TO_NANOSECONDS=10**6,SECOND_TO_NANOSECONDS=10**9;function millisToHrTime(epochMillis){let epochSeconds=epochMillis/1e3;return[Math.trunc(epochSeconds),Math.round(epochMillis%1e3*MILLISECONDS_TO_NANOSECONDS)]}exports.millisToHrTime=millisToHrTime;function getTimeOrigin(){let timeOrigin=platform_1.otperformance.timeOrigin;if(typeof timeOrigin!=`number`){let perf=platform_1.otperformance;timeOrigin=perf.timing&&perf.timing.fetchStart}return timeOrigin}exports.getTimeOrigin=getTimeOrigin;function hrTime(performanceNow){return addHrTimes(millisToHrTime(getTimeOrigin()),millisToHrTime(typeof performanceNow==`number`?performanceNow:platform_1.otperformance.now()))}exports.hrTime=hrTime;function timeInputToHrTime(time){if(isTimeInputHrTime(time))return time;if(typeof time==`number`)return time<getTimeOrigin()?hrTime(time):millisToHrTime(time);if(time instanceof Date)return millisToHrTime(time.getTime());throw TypeError(`Invalid input type`)}exports.timeInputToHrTime=timeInputToHrTime;function hrTimeDuration(startTime,endTime){let seconds=endTime[0]-startTime[0],nanos=endTime[1]-startTime[1];return nanos<0&&(--seconds,nanos+=SECOND_TO_NANOSECONDS),[seconds,nanos]}exports.hrTimeDuration=hrTimeDuration;function hrTimeToTimeStamp(time){let precision=9,tmp=`${`0`.repeat(9)}${time[1]}Z`,nanoString=tmp.substring(tmp.length-9-1);return new Date(time[0]*1e3).toISOString().replace(`000Z`,nanoString)}exports.hrTimeToTimeStamp=hrTimeToTimeStamp;function hrTimeToNanoseconds(time){return time[0]*SECOND_TO_NANOSECONDS+time[1]}exports.hrTimeToNanoseconds=hrTimeToNanoseconds;function hrTimeToMilliseconds(time){return time[0]*1e3+time[1]/1e6}exports.hrTimeToMilliseconds=hrTimeToMilliseconds;function hrTimeToMicroseconds(time){return time[0]*1e6+time[1]/1e3}exports.hrTimeToMicroseconds=hrTimeToMicroseconds;function isTimeInputHrTime(value){return Array.isArray(value)&&value.length===2&&typeof value[0]==`number`&&typeof value[1]==`number`}exports.isTimeInputHrTime=isTimeInputHrTime;function isTimeInput(value){return isTimeInputHrTime(value)||typeof value==`number`||value instanceof Date}exports.isTimeInput=isTimeInput;function addHrTimes(time1,time2){let out=[time1[0]+time2[0],time1[1]+time2[1]];return out[1]>=SECOND_TO_NANOSECONDS&&(out[1]-=SECOND_TO_NANOSECONDS,out[0]+=1),out}exports.addHrTimes=addHrTimes})),require_timer_util=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.unrefTimer=void 0;function unrefTimer(timer){typeof timer!=`number`&&timer.unref()}exports.unrefTimer=unrefTimer})),require_ExportResult=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExportResultCode=void 0,(function(ExportResultCode$1){ExportResultCode$1[ExportResultCode$1.SUCCESS=0]=`SUCCESS`,ExportResultCode$1[ExportResultCode$1.FAILED=1]=`FAILED`})(exports.ExportResultCode||={})})),require_composite=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.CompositePropagator=void 0;let api_1$19=__require(`@opentelemetry/api`);exports.CompositePropagator=class{_propagators;_fields;constructor(config={}){this._propagators=config.propagators??[],this._fields=Array.from(new Set(this._propagators.map(p$1=>typeof p$1.fields==`function`?p$1.fields():[]).reduce((x,y)=>x.concat(y),[])))}inject(context$1,carrier,setter){for(let propagator of this._propagators)try{propagator.inject(context$1,carrier,setter)}catch(err){api_1$19.diag.warn(`Failed to inject with ${propagator.constructor.name}. Err: ${err.message}`)}}extract(context$1,carrier,getter){return this._propagators.reduce((ctx,propagator)=>{try{return propagator.extract(ctx,carrier,getter)}catch(err){api_1$19.diag.warn(`Failed to extract with ${propagator.constructor.name}. Err: ${err.message}`)}return ctx},context$1)}fields(){return this._fields.slice()}}})),require_validators=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.validateValue=exports.validateKey=void 0;let VALID_KEY_CHAR_RANGE=`[_0-9a-z-*/]`,VALID_KEY=`[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`,VALID_VENDOR_KEY=`[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`,VALID_KEY_REGEX=RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`),VALID_VALUE_BASE_REGEX=/^[ -~]{0,255}[!-~]$/,INVALID_VALUE_COMMA_EQUAL_REGEX=/,|=/;function validateKey(key){return VALID_KEY_REGEX.test(key)}exports.validateKey=validateKey;function validateValue(value){return VALID_VALUE_BASE_REGEX.test(value)&&!INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)}exports.validateValue=validateValue})),require_TraceState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TraceState=void 0;let validators_1=require_validators(),MAX_TRACE_STATE_ITEMS=32,MAX_TRACE_STATE_LEN=512,LIST_MEMBERS_SEPARATOR=`,`,LIST_MEMBER_KEY_VALUE_SPLITTER=`=`;exports.TraceState=class TraceState{_internalState=new Map;constructor(rawTraceState){rawTraceState&&this._parse(rawTraceState)}set(key,value){let traceState=this._clone();return traceState._internalState.has(key)&&traceState._internalState.delete(key),traceState._internalState.set(key,value),traceState}unset(key){let traceState=this._clone();return traceState._internalState.delete(key),traceState}get(key){return this._internalState.get(key)}serialize(){return this._keys().reduce((agg,key)=>(agg.push(key+`=`+this.get(key)),agg),[]).join(`,`)}_parse(rawTraceState){rawTraceState.length>512||(this._internalState=rawTraceState.split(`,`).reverse().reduce((agg,part)=>{let listMember=part.trim(),i=listMember.indexOf(`=`);if(i!==-1){let key=listMember.slice(0,i),value=listMember.slice(i+1,part.length);(0,validators_1.validateKey)(key)&&(0,validators_1.validateValue)(value)&&agg.set(key,value)}return agg},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let traceState=new TraceState;return traceState._internalState=new Map(this._internalState),traceState}}})),require_W3CTraceContextPropagator=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.W3CTraceContextPropagator=exports.parseTraceParent=exports.TRACE_STATE_HEADER=exports.TRACE_PARENT_HEADER=void 0;let api_1$18=__require(`@opentelemetry/api`),suppress_tracing_1=require_suppress_tracing(),TraceState_1=require_TraceState();exports.TRACE_PARENT_HEADER=`traceparent`,exports.TRACE_STATE_HEADER=`tracestate`;let VERSION=`00`,TRACE_PARENT_REGEX=RegExp(`^\\s?((?!ff)[\\da-f]{2})-((?![0]{32})[\\da-f]{32})-((?![0]{16})[\\da-f]{16})-([\\da-f]{2})(-.*)?\\s?$`);function parseTraceParent(traceParent){let match=TRACE_PARENT_REGEX.exec(traceParent);return!match||match[1]===`00`&&match[5]?null:{traceId:match[2],spanId:match[3],traceFlags:parseInt(match[4],16)}}exports.parseTraceParent=parseTraceParent,exports.W3CTraceContextPropagator=class{inject(context$1,carrier,setter){let spanContext=api_1$18.trace.getSpanContext(context$1);if(!spanContext||(0,suppress_tracing_1.isTracingSuppressed)(context$1)||!(0,api_1$18.isSpanContextValid)(spanContext))return;let traceParent=`00-${spanContext.traceId}-${spanContext.spanId}-0${Number(spanContext.traceFlags||api_1$18.TraceFlags.NONE).toString(16)}`;setter.set(carrier,exports.TRACE_PARENT_HEADER,traceParent),spanContext.traceState&&setter.set(carrier,exports.TRACE_STATE_HEADER,spanContext.traceState.serialize())}extract(context$1,carrier,getter){let traceParentHeader=getter.get(carrier,exports.TRACE_PARENT_HEADER);if(!traceParentHeader)return context$1;let traceParent=Array.isArray(traceParentHeader)?traceParentHeader[0]:traceParentHeader;if(typeof traceParent!=`string`)return context$1;let spanContext=parseTraceParent(traceParent);if(!spanContext)return context$1;spanContext.isRemote=!0;let traceStateHeader=getter.get(carrier,exports.TRACE_STATE_HEADER);if(traceStateHeader){let state=Array.isArray(traceStateHeader)?traceStateHeader.join(`,`):traceStateHeader;spanContext.traceState=new TraceState_1.TraceState(typeof state==`string`?state:void 0)}return api_1$18.trace.setSpanContext(context$1,spanContext)}fields(){return[exports.TRACE_PARENT_HEADER,exports.TRACE_STATE_HEADER]}}})),require_rpc_metadata=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getRPCMetadata=exports.deleteRPCMetadata=exports.setRPCMetadata=exports.RPCType=void 0;let RPC_METADATA_KEY=(0,__require(`@opentelemetry/api`).createContextKey)(`OpenTelemetry SDK Context Key RPC_METADATA`);(function(RPCType){RPCType.HTTP=`http`})(exports.RPCType||={});function setRPCMetadata(context$1,meta){return context$1.setValue(RPC_METADATA_KEY,meta)}exports.setRPCMetadata=setRPCMetadata;function deleteRPCMetadata(context$1){return context$1.deleteValue(RPC_METADATA_KEY)}exports.deleteRPCMetadata=deleteRPCMetadata;function getRPCMetadata(context$1){return context$1.getValue(RPC_METADATA_KEY)}exports.getRPCMetadata=getRPCMetadata})),require_lodash_merge=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isPlainObject=void 0;let objectTag=`[object Object]`,nullTag=`[object Null]`,undefinedTag=`[object Undefined]`,funcToString=Function.prototype.toString,objectCtorString=funcToString.call(Object),getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,symToStringTag=Symbol?Symbol.toStringTag:void 0,nativeObjectToString=objectProto.toString;function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!==`[object Object]`)return!1;let proto=getPrototypeOf(value);if(proto===null)return!0;let Ctor=hasOwnProperty.call(proto,`constructor`)&&proto.constructor;return typeof Ctor==`function`&&Ctor instanceof Ctor&&funcToString.call(Ctor)===objectCtorString}exports.isPlainObject=isPlainObject;function isObjectLike(value){return typeof value==`object`&&!!value}function baseGetTag(value){return value==null?value===void 0?`[object Undefined]`:`[object Null]`:symToStringTag&&symToStringTag in Object(value)?getRawTag(value):objectToString(value)}function getRawTag(value){let isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag],unmasked=!1;try{value[symToStringTag]=void 0,unmasked=!0}catch{}let result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}function objectToString(value){return nativeObjectToString.call(value)}})),require_merge=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.merge=void 0;let lodash_merge_1=require_lodash_merge(),MAX_LEVEL=20;function merge(...args){let result=args.shift(),objects=new WeakMap;for(;args.length>0;)result=mergeTwoObjects(result,args.shift(),0,objects);return result}exports.merge=merge;function takeValue(value){return isArray(value)?value.slice():value}function mergeTwoObjects(one,two,level=0,objects){let result;if(!(level>20)){if(level++,isPrimitive(one)||isPrimitive(two)||isFunction(two))result=takeValue(two);else if(isArray(one)){if(result=one.slice(),isArray(two))for(let i=0,j=two.length;i<j;i++)result.push(takeValue(two[i]));else if(isObject(two)){let keys=Object.keys(two);for(let i=0,j=keys.length;i<j;i++){let key=keys[i];result[key]=takeValue(two[key])}}}else if(isObject(one))if(isObject(two)){if(!shouldMerge(one,two))return two;result=Object.assign({},one);let keys=Object.keys(two);for(let i=0,j=keys.length;i<j;i++){let key=keys[i],twoValue=two[key];if(isPrimitive(twoValue))twoValue===void 0?delete result[key]:result[key]=twoValue;else{let obj1=result[key],obj2=twoValue;if(wasObjectReferenced(one,key,objects)||wasObjectReferenced(two,key,objects))delete result[key];else{if(isObject(obj1)&&isObject(obj2)){let arr1=objects.get(obj1)||[],arr2=objects.get(obj2)||[];arr1.push({obj:one,key}),arr2.push({obj:two,key}),objects.set(obj1,arr1),objects.set(obj2,arr2)}result[key]=mergeTwoObjects(result[key],twoValue,level,objects)}}}}else result=two;return result}}function wasObjectReferenced(obj,key,objects){let arr=objects.get(obj[key])||[];for(let i=0,j=arr.length;i<j;i++){let info=arr[i];if(info.key===key&&info.obj===obj)return!0}return!1}function isArray(value){return Array.isArray(value)}function isFunction(value){return typeof value==`function`}function isObject(value){return!isPrimitive(value)&&!isArray(value)&&!isFunction(value)&&typeof value==`object`}function isPrimitive(value){return typeof value==`string`||typeof value==`number`||typeof value==`boolean`||value===void 0||value instanceof Date||value instanceof RegExp||value===null}function shouldMerge(one,two){return!(!(0,lodash_merge_1.isPlainObject)(one)||!(0,lodash_merge_1.isPlainObject)(two))}})),require_timeout=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.callWithTimeout=exports.TimeoutError=void 0;var TimeoutError=class TimeoutError extends Error{constructor(message){super(message),Object.setPrototypeOf(this,TimeoutError.prototype)}};exports.TimeoutError=TimeoutError;function callWithTimeout(promise,timeout){let timeoutHandle,timeoutPromise=new Promise(function(_resolve,reject){timeoutHandle=setTimeout(function(){reject(new TimeoutError(`Operation timed out.`))},timeout)});return Promise.race([promise,timeoutPromise]).then(result=>(clearTimeout(timeoutHandle),result),reason=>{throw clearTimeout(timeoutHandle),reason})}exports.callWithTimeout=callWithTimeout})),require_url=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isUrlIgnored=exports.urlMatches=void 0;function urlMatches(url$1,urlToMatch){return typeof urlToMatch==`string`?url$1===urlToMatch:!!url$1.match(urlToMatch)}exports.urlMatches=urlMatches;function isUrlIgnored(url$1,ignoredUrls){if(!ignoredUrls)return!1;for(let ignoreUrl of ignoredUrls)if(urlMatches(url$1,ignoreUrl))return!0;return!1}exports.isUrlIgnored=isUrlIgnored})),require_promise=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Deferred=void 0,exports.Deferred=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((resolve,reject)=>{this._resolve=resolve,this._reject=reject})}get promise(){return this._promise}resolve(val){this._resolve(val)}reject(err){this._reject(err)}}})),require_callback=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BindOnceFuture=void 0;let promise_1=require_promise();exports.BindOnceFuture=class{_callback;_that;_isCalled=!1;_deferred=new promise_1.Deferred;constructor(_callback,_that){this._callback=_callback,this._that=_that}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...args){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...args)).then(val=>this._deferred.resolve(val),err=>this._deferred.reject(err))}catch(err){this._deferred.reject(err)}}return this._deferred.promise}}})),require_configuration=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.diagLogLevelFromString=void 0;let api_1$17=__require(`@opentelemetry/api`),logLevelMap={ALL:api_1$17.DiagLogLevel.ALL,VERBOSE:api_1$17.DiagLogLevel.VERBOSE,DEBUG:api_1$17.DiagLogLevel.DEBUG,INFO:api_1$17.DiagLogLevel.INFO,WARN:api_1$17.DiagLogLevel.WARN,ERROR:api_1$17.DiagLogLevel.ERROR,NONE:api_1$17.DiagLogLevel.NONE};function diagLogLevelFromString(value){return value==null?void 0:logLevelMap[value.toUpperCase()]??(api_1$17.diag.warn(`Unknown log level "${value}", expected one of ${Object.keys(logLevelMap)}, using default`),api_1$17.DiagLogLevel.INFO)}exports.diagLogLevelFromString=diagLogLevelFromString})),require_exporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._export=void 0;let api_1$16=__require(`@opentelemetry/api`),suppress_tracing_1=require_suppress_tracing();function _export(exporter,arg){return new Promise(resolve=>{api_1$16.context.with((0,suppress_tracing_1.suppressTracing)(api_1$16.context.active()),()=>{exporter.export(arg,result=>{resolve(result)})})})}exports._export=_export})),require_src$8=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.internal=exports.diagLogLevelFromString=exports.BindOnceFuture=exports.urlMatches=exports.isUrlIgnored=exports.callWithTimeout=exports.TimeoutError=exports.merge=exports.TraceState=exports.unsuppressTracing=exports.suppressTracing=exports.isTracingSuppressed=exports.setRPCMetadata=exports.getRPCMetadata=exports.deleteRPCMetadata=exports.RPCType=exports.parseTraceParent=exports.W3CTraceContextPropagator=exports.TRACE_STATE_HEADER=exports.TRACE_PARENT_HEADER=exports.CompositePropagator=exports.otperformance=exports.getStringListFromEnv=exports.getNumberFromEnv=exports.getBooleanFromEnv=exports.getStringFromEnv=exports._globalThis=exports.SDK_INFO=exports.parseKeyPairsIntoRecord=exports.ExportResultCode=exports.unrefTimer=exports.timeInputToHrTime=exports.millisToHrTime=exports.isTimeInputHrTime=exports.isTimeInput=exports.hrTimeToTimeStamp=exports.hrTimeToNanoseconds=exports.hrTimeToMilliseconds=exports.hrTimeToMicroseconds=exports.hrTimeDuration=exports.hrTime=exports.getTimeOrigin=exports.addHrTimes=exports.loggingErrorHandler=exports.setGlobalErrorHandler=exports.globalErrorHandler=exports.sanitizeAttributes=exports.isAttributeValue=exports.AnchoredClock=exports.W3CBaggagePropagator=void 0;var W3CBaggagePropagator_1=require_W3CBaggagePropagator();Object.defineProperty(exports,`W3CBaggagePropagator`,{enumerable:!0,get:function(){return W3CBaggagePropagator_1.W3CBaggagePropagator}});var anchored_clock_1=require_anchored_clock();Object.defineProperty(exports,`AnchoredClock`,{enumerable:!0,get:function(){return anchored_clock_1.AnchoredClock}});var attributes_1=require_attributes();Object.defineProperty(exports,`isAttributeValue`,{enumerable:!0,get:function(){return attributes_1.isAttributeValue}}),Object.defineProperty(exports,`sanitizeAttributes`,{enumerable:!0,get:function(){return attributes_1.sanitizeAttributes}});var global_error_handler_1=require_global_error_handler();Object.defineProperty(exports,`globalErrorHandler`,{enumerable:!0,get:function(){return global_error_handler_1.globalErrorHandler}}),Object.defineProperty(exports,`setGlobalErrorHandler`,{enumerable:!0,get:function(){return global_error_handler_1.setGlobalErrorHandler}});var logging_error_handler_1=require_logging_error_handler();Object.defineProperty(exports,`loggingErrorHandler`,{enumerable:!0,get:function(){return logging_error_handler_1.loggingErrorHandler}});var time_1=require_time();Object.defineProperty(exports,`addHrTimes`,{enumerable:!0,get:function(){return time_1.addHrTimes}}),Object.defineProperty(exports,`getTimeOrigin`,{enumerable:!0,get:function(){return time_1.getTimeOrigin}}),Object.defineProperty(exports,`hrTime`,{enumerable:!0,get:function(){return time_1.hrTime}}),Object.defineProperty(exports,`hrTimeDuration`,{enumerable:!0,get:function(){return time_1.hrTimeDuration}}),Object.defineProperty(exports,`hrTimeToMicroseconds`,{enumerable:!0,get:function(){return time_1.hrTimeToMicroseconds}}),Object.defineProperty(exports,`hrTimeToMilliseconds`,{enumerable:!0,get:function(){return time_1.hrTimeToMilliseconds}}),Object.defineProperty(exports,`hrTimeToNanoseconds`,{enumerable:!0,get:function(){return time_1.hrTimeToNanoseconds}}),Object.defineProperty(exports,`hrTimeToTimeStamp`,{enumerable:!0,get:function(){return time_1.hrTimeToTimeStamp}}),Object.defineProperty(exports,`isTimeInput`,{enumerable:!0,get:function(){return time_1.isTimeInput}}),Object.defineProperty(exports,`isTimeInputHrTime`,{enumerable:!0,get:function(){return time_1.isTimeInputHrTime}}),Object.defineProperty(exports,`millisToHrTime`,{enumerable:!0,get:function(){return time_1.millisToHrTime}}),Object.defineProperty(exports,`timeInputToHrTime`,{enumerable:!0,get:function(){return time_1.timeInputToHrTime}});var timer_util_1=require_timer_util();Object.defineProperty(exports,`unrefTimer`,{enumerable:!0,get:function(){return timer_util_1.unrefTimer}});var ExportResult_1=require_ExportResult();Object.defineProperty(exports,`ExportResultCode`,{enumerable:!0,get:function(){return ExportResult_1.ExportResultCode}});var utils_1=require_utils$2();Object.defineProperty(exports,`parseKeyPairsIntoRecord`,{enumerable:!0,get:function(){return utils_1.parseKeyPairsIntoRecord}});var platform_1=require_platform$5();Object.defineProperty(exports,`SDK_INFO`,{enumerable:!0,get:function(){return platform_1.SDK_INFO}}),Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return platform_1._globalThis}}),Object.defineProperty(exports,`getStringFromEnv`,{enumerable:!0,get:function(){return platform_1.getStringFromEnv}}),Object.defineProperty(exports,`getBooleanFromEnv`,{enumerable:!0,get:function(){return platform_1.getBooleanFromEnv}}),Object.defineProperty(exports,`getNumberFromEnv`,{enumerable:!0,get:function(){return platform_1.getNumberFromEnv}}),Object.defineProperty(exports,`getStringListFromEnv`,{enumerable:!0,get:function(){return platform_1.getStringListFromEnv}}),Object.defineProperty(exports,`otperformance`,{enumerable:!0,get:function(){return platform_1.otperformance}});var composite_1=require_composite();Object.defineProperty(exports,`CompositePropagator`,{enumerable:!0,get:function(){return composite_1.CompositePropagator}});var W3CTraceContextPropagator_1=require_W3CTraceContextPropagator();Object.defineProperty(exports,`TRACE_PARENT_HEADER`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.TRACE_PARENT_HEADER}}),Object.defineProperty(exports,`TRACE_STATE_HEADER`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.TRACE_STATE_HEADER}}),Object.defineProperty(exports,`W3CTraceContextPropagator`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.W3CTraceContextPropagator}}),Object.defineProperty(exports,`parseTraceParent`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.parseTraceParent}});var rpc_metadata_1=require_rpc_metadata();Object.defineProperty(exports,`RPCType`,{enumerable:!0,get:function(){return rpc_metadata_1.RPCType}}),Object.defineProperty(exports,`deleteRPCMetadata`,{enumerable:!0,get:function(){return rpc_metadata_1.deleteRPCMetadata}}),Object.defineProperty(exports,`getRPCMetadata`,{enumerable:!0,get:function(){return rpc_metadata_1.getRPCMetadata}}),Object.defineProperty(exports,`setRPCMetadata`,{enumerable:!0,get:function(){return rpc_metadata_1.setRPCMetadata}});var suppress_tracing_1=require_suppress_tracing();Object.defineProperty(exports,`isTracingSuppressed`,{enumerable:!0,get:function(){return suppress_tracing_1.isTracingSuppressed}}),Object.defineProperty(exports,`suppressTracing`,{enumerable:!0,get:function(){return suppress_tracing_1.suppressTracing}}),Object.defineProperty(exports,`unsuppressTracing`,{enumerable:!0,get:function(){return suppress_tracing_1.unsuppressTracing}});var TraceState_1=require_TraceState();Object.defineProperty(exports,`TraceState`,{enumerable:!0,get:function(){return TraceState_1.TraceState}});var merge_1=require_merge();Object.defineProperty(exports,`merge`,{enumerable:!0,get:function(){return merge_1.merge}});var timeout_1=require_timeout();Object.defineProperty(exports,`TimeoutError`,{enumerable:!0,get:function(){return timeout_1.TimeoutError}}),Object.defineProperty(exports,`callWithTimeout`,{enumerable:!0,get:function(){return timeout_1.callWithTimeout}});var url_1=require_url();Object.defineProperty(exports,`isUrlIgnored`,{enumerable:!0,get:function(){return url_1.isUrlIgnored}}),Object.defineProperty(exports,`urlMatches`,{enumerable:!0,get:function(){return url_1.urlMatches}});var callback_1=require_callback();Object.defineProperty(exports,`BindOnceFuture`,{enumerable:!0,get:function(){return callback_1.BindOnceFuture}});var configuration_1=require_configuration();Object.defineProperty(exports,`diagLogLevelFromString`,{enumerable:!0,get:function(){return configuration_1.diagLogLevelFromString}}),exports.internal={_export:require_exporter()._export}})),require_enums=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExceptionEventName=void 0,exports.ExceptionEventName=`exception`})),require_Span=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SpanImpl=void 0;let api_1$15=__require(`@opentelemetry/api`),core_1=require_src$8(),semantic_conventions_1=__require(`@opentelemetry/semantic-conventions`),enums_1=require_enums();exports.SpanImpl=class{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;name;status={code:api_1$15.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(opts){let now=Date.now();this._spanContext=opts.spanContext,this._performanceStartTime=core_1.otperformance.now(),this._performanceOffset=now-(this._performanceStartTime+(0,core_1.getTimeOrigin)()),this._startTimeProvided=opts.startTime!=null,this._spanLimits=opts.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit||0,this._spanProcessor=opts.spanProcessor,this.name=opts.name,this.parentSpanContext=opts.parentSpanContext,this.kind=opts.kind,this.links=opts.links||[],this.startTime=this._getTime(opts.startTime??now),this.resource=opts.resource,this.instrumentationScope=opts.scope,opts.attributes!=null&&this.setAttributes(opts.attributes),this._spanProcessor.onStart(this,opts.context)}spanContext(){return this._spanContext}setAttribute(key,value){if(value==null||this._isSpanEnded())return this;if(key.length===0)return api_1$15.diag.warn(`Invalid attribute key: ${key}`),this;if(!(0,core_1.isAttributeValue)(value))return api_1$15.diag.warn(`Invalid attribute value set for key: ${key}`),this;let{attributeCountLimit}=this._spanLimits;return attributeCountLimit!==void 0&&Object.keys(this.attributes).length>=attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,key)?(this._droppedAttributesCount++,this):(this.attributes[key]=this._truncateToSize(value),this)}setAttributes(attributes){for(let[k,v]of Object.entries(attributes))this.setAttribute(k,v);return this}addEvent(name,attributesOrStartTime,timeStamp){if(this._isSpanEnded())return this;let{eventCountLimit}=this._spanLimits;if(eventCountLimit===0)return api_1$15.diag.warn(`No events allowed.`),this._droppedEventsCount++,this;eventCountLimit!==void 0&&this.events.length>=eventCountLimit&&(this._droppedEventsCount===0&&api_1$15.diag.debug(`Dropping extra events.`),this.events.shift(),this._droppedEventsCount++),(0,core_1.isTimeInput)(attributesOrStartTime)&&((0,core_1.isTimeInput)(timeStamp)||(timeStamp=attributesOrStartTime),attributesOrStartTime=void 0);let attributes=(0,core_1.sanitizeAttributes)(attributesOrStartTime);return this.events.push({name,attributes,time:this._getTime(timeStamp),droppedAttributesCount:0}),this}addLink(link){return this.links.push(link),this}addLinks(links){return this.links.push(...links),this}setStatus(status){return this._isSpanEnded()?this:(this.status={...status},this.status.message!=null&&typeof status.message!=`string`&&(api_1$15.diag.warn(`Dropping invalid status.message of type '${typeof status.message}', expected 'string'`),delete this.status.message),this)}updateName(name){return this._isSpanEnded()||(this.name=name),this}end(endTime){if(this._isSpanEnded()){api_1$15.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}this._ended=!0,this.endTime=this._getTime(endTime),this._duration=(0,core_1.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0&&(api_1$15.diag.warn(`Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.`,this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&api_1$15.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`),this._spanProcessor.onEnd(this)}_getTime(inp){if(typeof inp==`number`&&inp<=core_1.otperformance.now())return(0,core_1.hrTime)(inp+this._performanceOffset);if(typeof inp==`number`)return(0,core_1.millisToHrTime)(inp);if(inp instanceof Date)return(0,core_1.millisToHrTime)(inp.getTime());if((0,core_1.isTimeInputHrTime)(inp))return inp;if(this._startTimeProvided)return(0,core_1.millisToHrTime)(Date.now());let msDuration=core_1.otperformance.now()-this._performanceStartTime;return(0,core_1.addHrTimes)(this.startTime,(0,core_1.millisToHrTime)(msDuration))}isRecording(){return this._ended===!1}recordException(exception,time){let attributes={};typeof exception==`string`?attributes[semantic_conventions_1.ATTR_EXCEPTION_MESSAGE]=exception:exception&&(exception.code?attributes[semantic_conventions_1.ATTR_EXCEPTION_TYPE]=exception.code.toString():exception.name&&(attributes[semantic_conventions_1.ATTR_EXCEPTION_TYPE]=exception.name),exception.message&&(attributes[semantic_conventions_1.ATTR_EXCEPTION_MESSAGE]=exception.message),exception.stack&&(attributes[semantic_conventions_1.ATTR_EXCEPTION_STACKTRACE]=exception.stack)),attributes[semantic_conventions_1.ATTR_EXCEPTION_TYPE]||attributes[semantic_conventions_1.ATTR_EXCEPTION_MESSAGE]?this.addEvent(enums_1.ExceptionEventName,attributes,time):api_1$15.diag.warn(`Failed to record an exception ${exception}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let error=Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);api_1$15.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,error)}return this._ended}_truncateToLimitUtil(value,limit){return value.length<=limit?value:value.substring(0,limit)}_truncateToSize(value){let limit=this._attributeValueLengthLimit;return limit<=0?(api_1$15.diag.warn(`Attribute value limit must be positive, got ${limit}`),value):typeof value==`string`?this._truncateToLimitUtil(value,limit):Array.isArray(value)?value.map(val=>typeof val==`string`?this._truncateToLimitUtil(val,limit):val):value}}})),require_Sampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SamplingDecision=void 0,(function(SamplingDecision){SamplingDecision[SamplingDecision.NOT_RECORD=0]=`NOT_RECORD`,SamplingDecision[SamplingDecision.RECORD=1]=`RECORD`,SamplingDecision[SamplingDecision.RECORD_AND_SAMPLED=2]=`RECORD_AND_SAMPLED`})(exports.SamplingDecision||={})})),require_AlwaysOffSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AlwaysOffSampler=void 0;let Sampler_1=require_Sampler();exports.AlwaysOffSampler=class{shouldSample(){return{decision:Sampler_1.SamplingDecision.NOT_RECORD}}toString(){return`AlwaysOffSampler`}}})),require_AlwaysOnSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AlwaysOnSampler=void 0;let Sampler_1=require_Sampler();exports.AlwaysOnSampler=class{shouldSample(){return{decision:Sampler_1.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return`AlwaysOnSampler`}}})),require_ParentBasedSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ParentBasedSampler=void 0;let api_1$14=__require(`@opentelemetry/api`),core_1=require_src$8(),AlwaysOffSampler_1=require_AlwaysOffSampler(),AlwaysOnSampler_1=require_AlwaysOnSampler();exports.ParentBasedSampler=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(config){this._root=config.root,this._root||=((0,core_1.globalErrorHandler)(Error(`ParentBasedSampler must have a root sampler configured`)),new AlwaysOnSampler_1.AlwaysOnSampler),this._remoteParentSampled=config.remoteParentSampled??new AlwaysOnSampler_1.AlwaysOnSampler,this._remoteParentNotSampled=config.remoteParentNotSampled??new AlwaysOffSampler_1.AlwaysOffSampler,this._localParentSampled=config.localParentSampled??new AlwaysOnSampler_1.AlwaysOnSampler,this._localParentNotSampled=config.localParentNotSampled??new AlwaysOffSampler_1.AlwaysOffSampler}shouldSample(context$1,traceId,spanName,spanKind,attributes,links){let parentContext=api_1$14.trace.getSpanContext(context$1);return!parentContext||!(0,api_1$14.isSpanContextValid)(parentContext)?this._root.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):parentContext.isRemote?parentContext.traceFlags&api_1$14.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):this._remoteParentNotSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):parentContext.traceFlags&api_1$14.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):this._localParentNotSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}}})),require_TraceIdRatioBasedSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TraceIdRatioBasedSampler=void 0;let api_1$13=__require(`@opentelemetry/api`),Sampler_1=require_Sampler();exports.TraceIdRatioBasedSampler=class{_ratio;_upperBound;constructor(_ratio=0){this._ratio=_ratio,this._ratio=this._normalize(_ratio),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(context$1,traceId){return{decision:(0,api_1$13.isValidTraceId)(traceId)&&this._accumulate(traceId)<this._upperBound?Sampler_1.SamplingDecision.RECORD_AND_SAMPLED:Sampler_1.SamplingDecision.NOT_RECORD}}toString(){return`TraceIdRatioBased{${this._ratio}}`}_normalize(ratio){return typeof ratio!=`number`||isNaN(ratio)?0:ratio>=1?1:ratio<=0?0:ratio}_accumulate(traceId){let accumulation=0;for(let i=0;i<traceId.length/8;i++){let pos=i*8,part=parseInt(traceId.slice(pos,pos+8),16);accumulation=(accumulation^part)>>>0}return accumulation}}})),require_config$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.buildSamplerFromEnv=exports.loadDefaultConfig=void 0;let api_1$12=__require(`@opentelemetry/api`),core_1=require_src$8(),AlwaysOffSampler_1=require_AlwaysOffSampler(),AlwaysOnSampler_1=require_AlwaysOnSampler(),ParentBasedSampler_1=require_ParentBasedSampler(),TraceIdRatioBasedSampler_1=require_TraceIdRatioBasedSampler();var TracesSamplerValues;(function(TracesSamplerValues){TracesSamplerValues.AlwaysOff=`always_off`,TracesSamplerValues.AlwaysOn=`always_on`,TracesSamplerValues.ParentBasedAlwaysOff=`parentbased_always_off`,TracesSamplerValues.ParentBasedAlwaysOn=`parentbased_always_on`,TracesSamplerValues.ParentBasedTraceIdRatio=`parentbased_traceidratio`,TracesSamplerValues.TraceIdRatio=`traceidratio`})(TracesSamplerValues||={});let DEFAULT_RATIO=1;function loadDefaultConfig(){return{sampler:buildSamplerFromEnv(),forceFlushTimeoutMillis:3e4,generalLimits:{attributeValueLengthLimit:(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0,attributeCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_COUNT_LIMIT`)??128},spanLimits:{attributeValueLengthLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0,attributeCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT`)??128,linkCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_LINK_COUNT_LIMIT`)??128,eventCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_EVENT_COUNT_LIMIT`)??128,attributePerEventCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT`)??128,attributePerLinkCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT`)??128}}}exports.loadDefaultConfig=loadDefaultConfig;function buildSamplerFromEnv(){let sampler=(0,core_1.getStringFromEnv)(`OTEL_TRACES_SAMPLER`)??TracesSamplerValues.ParentBasedAlwaysOn;switch(sampler){case TracesSamplerValues.AlwaysOn:return new AlwaysOnSampler_1.AlwaysOnSampler;case TracesSamplerValues.AlwaysOff:return new AlwaysOffSampler_1.AlwaysOffSampler;case TracesSamplerValues.ParentBasedAlwaysOn:return new ParentBasedSampler_1.ParentBasedSampler({root:new AlwaysOnSampler_1.AlwaysOnSampler});case TracesSamplerValues.ParentBasedAlwaysOff:return new ParentBasedSampler_1.ParentBasedSampler({root:new AlwaysOffSampler_1.AlwaysOffSampler});case TracesSamplerValues.TraceIdRatio:return new TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv());case TracesSamplerValues.ParentBasedTraceIdRatio:return new ParentBasedSampler_1.ParentBasedSampler({root:new TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv())});default:return api_1$12.diag.error(`OTEL_TRACES_SAMPLER value "${sampler}" invalid, defaulting to "${TracesSamplerValues.ParentBasedAlwaysOn}".`),new ParentBasedSampler_1.ParentBasedSampler({root:new AlwaysOnSampler_1.AlwaysOnSampler})}}exports.buildSamplerFromEnv=buildSamplerFromEnv;function getSamplerProbabilityFromEnv(){let probability=(0,core_1.getNumberFromEnv)(`OTEL_TRACES_SAMPLER_ARG`);return probability==null?(api_1$12.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to 1.`),1):probability<0||probability>1?(api_1$12.diag.error(`OTEL_TRACES_SAMPLER_ARG=${probability} was given, but it is out of range ([0..1]), defaulting to 1.`),1):probability}})),require_utility=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.reconfigureLimits=exports.mergeConfig=exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;let config_1=require_config$2(),core_1=require_src$8();exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128,exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function mergeConfig(userConfig){let perInstanceDefaults={sampler:(0,config_1.buildSamplerFromEnv)()},DEFAULT_CONFIG=(0,config_1.loadDefaultConfig)(),target=Object.assign({},DEFAULT_CONFIG,perInstanceDefaults,userConfig);return target.generalLimits=Object.assign({},DEFAULT_CONFIG.generalLimits,userConfig.generalLimits||{}),target.spanLimits=Object.assign({},DEFAULT_CONFIG.spanLimits,userConfig.spanLimits||{}),target}exports.mergeConfig=mergeConfig;function reconfigureLimits(userConfig){let spanLimits=Object.assign({},userConfig.spanLimits);return spanLimits.attributeCountLimit=userConfig.spanLimits?.attributeCountLimit??userConfig.generalLimits?.attributeCountLimit??(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_COUNT_LIMIT`)??exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,spanLimits.attributeValueLengthLimit=userConfig.spanLimits?.attributeValueLengthLimit??userConfig.generalLimits?.attributeValueLengthLimit??(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},userConfig,{spanLimits})}exports.reconfigureLimits=reconfigureLimits})),require_BatchSpanProcessorBase=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchSpanProcessorBase=void 0;let api_1$11=__require(`@opentelemetry/api`),core_1=require_src$8();exports.BatchSpanProcessorBase=class{_exporter;_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(_exporter,config){this._exporter=_exporter,this._maxExportBatchSize=typeof config?.maxExportBatchSize==`number`?config.maxExportBatchSize:(0,core_1.getNumberFromEnv)(`OTEL_BSP_MAX_EXPORT_BATCH_SIZE`)??512,this._maxQueueSize=typeof config?.maxQueueSize==`number`?config.maxQueueSize:(0,core_1.getNumberFromEnv)(`OTEL_BSP_MAX_QUEUE_SIZE`)??2048,this._scheduledDelayMillis=typeof config?.scheduledDelayMillis==`number`?config.scheduledDelayMillis:(0,core_1.getNumberFromEnv)(`OTEL_BSP_SCHEDULE_DELAY`)??5e3,this._exportTimeoutMillis=typeof config?.exportTimeoutMillis==`number`?config.exportTimeoutMillis:(0,core_1.getNumberFromEnv)(`OTEL_BSP_EXPORT_TIMEOUT`)??3e4,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(api_1$11.diag.warn(`BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize`),this._maxExportBatchSize=this._maxQueueSize)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}onStart(_span,_parentContext){}onEnd(span){this._shutdownOnce.isCalled||(span.spanContext().traceFlags&api_1$11.TraceFlags.SAMPLED)!==0&&this._addToBuffer(span)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>this.onShutdown()).then(()=>this._flushAll()).then(()=>this._exporter.shutdown())}_addToBuffer(span){if(this._finishedSpans.length>=this._maxQueueSize){this._droppedSpansCount===0&&api_1$11.diag.debug(`maxQueueSize reached, dropping spans`),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(api_1$11.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0),this._finishedSpans.push(span),this._maybeStartTimer()}_flushAll(){return new Promise((resolve,reject)=>{let promises=[],count=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let i=0,j=count;i<j;i++)promises.push(this._flushOneBatch());Promise.all(promises).then(()=>{resolve()}).catch(reject)})}_flushOneBatch(){return this._clearTimer(),this._finishedSpans.length===0?Promise.resolve():new Promise((resolve,reject)=>{let timer=setTimeout(()=>{reject(Error(`Timeout`))},this._exportTimeoutMillis);api_1$11.context.with((0,core_1.suppressTracing)(api_1$11.context.active()),()=>{let spans;this._finishedSpans.length<=this._maxExportBatchSize?(spans=this._finishedSpans,this._finishedSpans=[]):spans=this._finishedSpans.splice(0,this._maxExportBatchSize);let doExport=()=>this._exporter.export(spans,result=>{clearTimeout(timer),result.code===core_1.ExportResultCode.SUCCESS?resolve():reject(result.error??Error(`BatchSpanProcessor: span export failed`))}),pendingResources=null;for(let i=0,len=spans.length;i<len;i++){let span=spans[i];span.resource.asyncAttributesPending&&span.resource.waitForAsyncAttributes&&(pendingResources??=[],pendingResources.push(span.resource.waitForAsyncAttributes()))}pendingResources===null?doExport():Promise.all(pendingResources).then(doExport,err=>{(0,core_1.globalErrorHandler)(err),reject(err)})})})}_maybeStartTimer(){if(this._isExporting)return;let flush=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{this._isExporting=!1,this._finishedSpans.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(e=>{this._isExporting=!1,(0,core_1.globalErrorHandler)(e)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return flush();this._timer===void 0&&(this._timer=setTimeout(()=>flush(),this._scheduledDelayMillis),typeof this._timer!=`number`&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}}})),require_BatchSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchSpanProcessor=void 0;let BatchSpanProcessorBase_1=require_BatchSpanProcessorBase();exports.BatchSpanProcessor=class extends BatchSpanProcessorBase_1.BatchSpanProcessorBase{onShutdown(){}}})),require_RandomIdGenerator=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RandomIdGenerator=void 0;let SPAN_ID_BYTES=8,TRACE_ID_BYTES=16;exports.RandomIdGenerator=class{generateTraceId=getIdGenerator(16);generateSpanId=getIdGenerator(8)};let SHARED_BUFFER=Buffer.allocUnsafe(16);function getIdGenerator(bytes){return function(){for(let i=0;i<bytes/4;i++)SHARED_BUFFER.writeUInt32BE(Math.random()*2**32>>>0,i*4);for(let i=0;i<bytes&&!(SHARED_BUFFER[i]>0);i++)i===bytes-1&&(SHARED_BUFFER[bytes-1]=1);return SHARED_BUFFER.toString(`hex`,0,bytes)}}})),require_node$4=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RandomIdGenerator=exports.BatchSpanProcessor=void 0;var BatchSpanProcessor_1=require_BatchSpanProcessor();Object.defineProperty(exports,`BatchSpanProcessor`,{enumerable:!0,get:function(){return BatchSpanProcessor_1.BatchSpanProcessor}});var RandomIdGenerator_1=require_RandomIdGenerator();Object.defineProperty(exports,`RandomIdGenerator`,{enumerable:!0,get:function(){return RandomIdGenerator_1.RandomIdGenerator}})})),require_platform$4=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RandomIdGenerator=exports.BatchSpanProcessor=void 0;var node_1=require_node$4();Object.defineProperty(exports,`BatchSpanProcessor`,{enumerable:!0,get:function(){return node_1.BatchSpanProcessor}}),Object.defineProperty(exports,`RandomIdGenerator`,{enumerable:!0,get:function(){return node_1.RandomIdGenerator}})})),require_Tracer=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Tracer=void 0;let api$5=__require(`@opentelemetry/api`),core_1=require_src$8(),Span_1=require_Span(),utility_1=require_utility(),platform_1=require_platform$4();exports.Tracer=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;constructor(instrumentationScope,config,resource,spanProcessor){let localConfig=(0,utility_1.mergeConfig)(config);this._sampler=localConfig.sampler,this._generalLimits=localConfig.generalLimits,this._spanLimits=localConfig.spanLimits,this._idGenerator=config.idGenerator||new platform_1.RandomIdGenerator,this._resource=resource,this._spanProcessor=spanProcessor,this.instrumentationScope=instrumentationScope}startSpan(name,options={},context$1=api$5.context.active()){options.root&&(context$1=api$5.trace.deleteSpan(context$1));let parentSpan=api$5.trace.getSpan(context$1);if((0,core_1.isTracingSuppressed)(context$1))return api$5.diag.debug(`Instrumentation suppressed, returning Noop Span`),api$5.trace.wrapSpanContext(api$5.INVALID_SPAN_CONTEXT);let parentSpanContext=parentSpan?.spanContext(),spanId=this._idGenerator.generateSpanId(),validParentSpanContext,traceId,traceState;!parentSpanContext||!api$5.trace.isSpanContextValid(parentSpanContext)?traceId=this._idGenerator.generateTraceId():(traceId=parentSpanContext.traceId,traceState=parentSpanContext.traceState,validParentSpanContext=parentSpanContext);let spanKind=options.kind??api$5.SpanKind.INTERNAL,links=(options.links??[]).map(link=>({context:link.context,attributes:(0,core_1.sanitizeAttributes)(link.attributes)})),attributes=(0,core_1.sanitizeAttributes)(options.attributes),samplingResult=this._sampler.shouldSample(context$1,traceId,name,spanKind,attributes,links);traceState=samplingResult.traceState??traceState;let traceFlags=samplingResult.decision===api$5.SamplingDecision.RECORD_AND_SAMPLED?api$5.TraceFlags.SAMPLED:api$5.TraceFlags.NONE,spanContext={traceId,spanId,traceFlags,traceState};if(samplingResult.decision===api$5.SamplingDecision.NOT_RECORD)return api$5.diag.debug(`Recording is off, propagating context in a non-recording span`),api$5.trace.wrapSpanContext(spanContext);let initAttributes=(0,core_1.sanitizeAttributes)(Object.assign(attributes,samplingResult.attributes));return new Span_1.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:context$1,spanContext,name,kind:spanKind,links,parentSpanContext:validParentSpanContext,attributes:initAttributes,startTime:options.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits})}startActiveSpan(name,arg2,arg3,arg4){let opts,ctx,fn;if(arguments.length<2)return;arguments.length===2?fn=arg2:arguments.length===3?(opts=arg2,fn=arg3):(opts=arg2,ctx=arg3,fn=arg4);let parentContext=ctx??api$5.context.active(),span=this.startSpan(name,opts,parentContext),contextWithSpanSet=api$5.trace.setSpan(parentContext,span);return api$5.context.with(contextWithSpanSet,fn,void 0,span)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}}})),require_MultiSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MultiSpanProcessor=void 0;let core_1=require_src$8();exports.MultiSpanProcessor=class{_spanProcessors;constructor(_spanProcessors){this._spanProcessors=_spanProcessors}forceFlush(){let promises=[];for(let spanProcessor of this._spanProcessors)promises.push(spanProcessor.forceFlush());return new Promise(resolve=>{Promise.all(promises).then(()=>{resolve()}).catch(error=>{(0,core_1.globalErrorHandler)(error||Error(`MultiSpanProcessor: forceFlush failed`)),resolve()})})}onStart(span,context$1){for(let spanProcessor of this._spanProcessors)spanProcessor.onStart(span,context$1)}onEnd(span){for(let spanProcessor of this._spanProcessors)spanProcessor.onEnd(span)}shutdown(){let promises=[];for(let spanProcessor of this._spanProcessors)promises.push(spanProcessor.shutdown());return new Promise((resolve,reject)=>{Promise.all(promises).then(()=>{resolve()},reject)})}}})),require_BasicTracerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BasicTracerProvider=exports.ForceFlushState=void 0;let core_1=require_src$8(),resources_1$2=__require(`@opentelemetry/resources`),Tracer_1=require_Tracer(),config_1=require_config$2(),MultiSpanProcessor_1=require_MultiSpanProcessor(),utility_1=require_utility();var ForceFlushState;(function(ForceFlushState){ForceFlushState[ForceFlushState.resolved=0]=`resolved`,ForceFlushState[ForceFlushState.timeout=1]=`timeout`,ForceFlushState[ForceFlushState.error=2]=`error`,ForceFlushState[ForceFlushState.unresolved=3]=`unresolved`})(ForceFlushState=exports.ForceFlushState||={}),exports.BasicTracerProvider=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(config={}){let mergedConfig=(0,core_1.merge)({},(0,config_1.loadDefaultConfig)(),(0,utility_1.reconfigureLimits)(config));this._resource=mergedConfig.resource??(0,resources_1$2.defaultResource)(),this._config=Object.assign({},mergedConfig,{resource:this._resource});let spanProcessors=[];config.spanProcessors?.length&&spanProcessors.push(...config.spanProcessors),this._activeSpanProcessor=new MultiSpanProcessor_1.MultiSpanProcessor(spanProcessors)}getTracer(name,version$1,options){let key=`${name}@${version$1||``}:${options?.schemaUrl||``}`;return this._tracers.has(key)||this._tracers.set(key,new Tracer_1.Tracer({name,version:version$1,schemaUrl:options?.schemaUrl},this._config,this._resource,this._activeSpanProcessor)),this._tracers.get(key)}forceFlush(){let timeout=this._config.forceFlushTimeoutMillis,promises=this._activeSpanProcessor._spanProcessors.map(spanProcessor=>new Promise(resolve=>{let state,timeoutInterval=setTimeout(()=>{resolve(Error(`Span processor did not completed within timeout period of ${timeout} ms`)),state=ForceFlushState.timeout},timeout);spanProcessor.forceFlush().then(()=>{clearTimeout(timeoutInterval),state!==ForceFlushState.timeout&&(state=ForceFlushState.resolved,resolve(state))}).catch(error=>{clearTimeout(timeoutInterval),state=ForceFlushState.error,resolve(error)})}));return new Promise((resolve,reject)=>{Promise.all(promises).then(results=>{let errors=results.filter(result=>result!==ForceFlushState.resolved);errors.length>0?reject(errors):resolve()}).catch(error=>reject([error]))})}shutdown(){return this._activeSpanProcessor.shutdown()}}})),require_ConsoleSpanExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ConsoleSpanExporter=void 0;let core_1=require_src$8();exports.ConsoleSpanExporter=class{export(spans,resultCallback){return this._sendSpans(spans,resultCallback)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(span){return{resource:{attributes:span.resource.attributes},instrumentationScope:span.instrumentationScope,traceId:span.spanContext().traceId,parentSpanContext:span.parentSpanContext,traceState:span.spanContext().traceState?.serialize(),name:span.name,id:span.spanContext().spanId,kind:span.kind,timestamp:(0,core_1.hrTimeToMicroseconds)(span.startTime),duration:(0,core_1.hrTimeToMicroseconds)(span.duration),attributes:span.attributes,status:span.status,events:span.events,links:span.links}}_sendSpans(spans,done){for(let span of spans)console.dir(this._exportInfo(span),{depth:3});if(done)return done({code:core_1.ExportResultCode.SUCCESS})}}})),require_InMemorySpanExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.InMemorySpanExporter=void 0;let core_1=require_src$8();exports.InMemorySpanExporter=class{_finishedSpans=[];_stopped=!1;export(spans,resultCallback){if(this._stopped)return resultCallback({code:core_1.ExportResultCode.FAILED,error:Error(`Exporter has been stopped`)});this._finishedSpans.push(...spans),setTimeout(()=>resultCallback({code:core_1.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}}})),require_SimpleSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SimpleSpanProcessor=void 0;let api_1$10=__require(`@opentelemetry/api`),core_1=require_src$8();exports.SimpleSpanProcessor=class{_exporter;_shutdownOnce;_pendingExports;constructor(_exporter){this._exporter=_exporter,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush&&await this._exporter.forceFlush()}onStart(_span,_parentContext){}onEnd(span){if(this._shutdownOnce.isCalled||(span.spanContext().traceFlags&api_1$10.TraceFlags.SAMPLED)===0)return;let pendingExport=this._doExport(span).catch(err=>(0,core_1.globalErrorHandler)(err));this._pendingExports.add(pendingExport),pendingExport.finally(()=>this._pendingExports.delete(pendingExport))}async _doExport(span){span.resource.asyncAttributesPending&&await span.resource.waitForAsyncAttributes?.();let result=await core_1.internal._export(this._exporter,[span]);if(result.code!==core_1.ExportResultCode.SUCCESS)throw result.error??Error(`SimpleSpanProcessor: span export failed (status ${result})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}})),require_NoopSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NoopSpanProcessor=void 0,exports.NoopSpanProcessor=class{onStart(_span,_context){}onEnd(_span){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}})),require_src$7=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SamplingDecision=exports.TraceIdRatioBasedSampler=exports.ParentBasedSampler=exports.AlwaysOnSampler=exports.AlwaysOffSampler=exports.NoopSpanProcessor=exports.SimpleSpanProcessor=exports.InMemorySpanExporter=exports.ConsoleSpanExporter=exports.RandomIdGenerator=exports.BatchSpanProcessor=exports.BasicTracerProvider=void 0;var BasicTracerProvider_1=require_BasicTracerProvider();Object.defineProperty(exports,`BasicTracerProvider`,{enumerable:!0,get:function(){return BasicTracerProvider_1.BasicTracerProvider}});var platform_1=require_platform$4();Object.defineProperty(exports,`BatchSpanProcessor`,{enumerable:!0,get:function(){return platform_1.BatchSpanProcessor}}),Object.defineProperty(exports,`RandomIdGenerator`,{enumerable:!0,get:function(){return platform_1.RandomIdGenerator}});var ConsoleSpanExporter_1=require_ConsoleSpanExporter();Object.defineProperty(exports,`ConsoleSpanExporter`,{enumerable:!0,get:function(){return ConsoleSpanExporter_1.ConsoleSpanExporter}});var InMemorySpanExporter_1=require_InMemorySpanExporter();Object.defineProperty(exports,`InMemorySpanExporter`,{enumerable:!0,get:function(){return InMemorySpanExporter_1.InMemorySpanExporter}});var SimpleSpanProcessor_1=require_SimpleSpanProcessor();Object.defineProperty(exports,`SimpleSpanProcessor`,{enumerable:!0,get:function(){return SimpleSpanProcessor_1.SimpleSpanProcessor}});var NoopSpanProcessor_1=require_NoopSpanProcessor();Object.defineProperty(exports,`NoopSpanProcessor`,{enumerable:!0,get:function(){return NoopSpanProcessor_1.NoopSpanProcessor}});var AlwaysOffSampler_1=require_AlwaysOffSampler();Object.defineProperty(exports,`AlwaysOffSampler`,{enumerable:!0,get:function(){return AlwaysOffSampler_1.AlwaysOffSampler}});var AlwaysOnSampler_1=require_AlwaysOnSampler();Object.defineProperty(exports,`AlwaysOnSampler`,{enumerable:!0,get:function(){return AlwaysOnSampler_1.AlwaysOnSampler}});var ParentBasedSampler_1=require_ParentBasedSampler();Object.defineProperty(exports,`ParentBasedSampler`,{enumerable:!0,get:function(){return ParentBasedSampler_1.ParentBasedSampler}});var TraceIdRatioBasedSampler_1=require_TraceIdRatioBasedSampler();Object.defineProperty(exports,`TraceIdRatioBasedSampler`,{enumerable:!0,get:function(){return TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler}});var Sampler_1=require_Sampler();Object.defineProperty(exports,`SamplingDecision`,{enumerable:!0,get:function(){return Sampler_1.SamplingDecision}})})),require_traces=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Tracer=exports.installTraceContextManager=exports.isTraceContextWorking=exports.getActiveSpan=exports.runWithTrace=exports.SpanStatusCode=void 0;let utils_1=require_utils$3();var SpanStatusCode;(function(SpanStatusCode$1){SpanStatusCode$1[SpanStatusCode$1.UNSET=0]=`UNSET`,SpanStatusCode$1[SpanStatusCode$1.OK=1]=`OK`,SpanStatusCode$1[SpanStatusCode$1.ERROR=2]=`ERROR`})(SpanStatusCode||(exports.SpanStatusCode=SpanStatusCode={}));var StubSpan=class{attributes={};setStatus(_status){return this}setAttribute(_key,_attribute){return this}addEvent(_name,_attributesOrStartTime,_timeStamp){return this}};function runWithTrace(span,func){if(!utils_1.globalParams.enableOTLP)return func();let{context:context$1,trace:trace$1}=__require(`@opentelemetry/api`);return context$1.with(trace$1.setSpan(context$1.active(),span),func)}exports.runWithTrace=runWithTrace;function getActiveSpan(){if(!utils_1.globalParams.enableOTLP)return;let{trace:trace$1}=__require(`@opentelemetry/api`);return trace$1.getActiveSpan()}exports.getActiveSpan=getActiveSpan;function isTraceContextWorking(){if(!utils_1.globalParams.enableOTLP)return!1;let{context:context$1,trace:trace$1}=__require(`@opentelemetry/api`),span=trace$1.getTracer(`otel-bootstrap-check`).startSpan(`probe`),testContext=trace$1.setSpan(context$1.active(),span),visible;return context$1.with(testContext,()=>{visible=trace$1.getSpan(context$1.active())===span}),span.end?.(),visible===!0}exports.isTraceContextWorking=isTraceContextWorking;function installTraceContextManager(appName=`dbos`){if(!utils_1.globalParams.enableOTLP)return;let{AsyncLocalStorageContextManager}=require_src$9(),{context:context$1,trace:trace$1}=__require(`@opentelemetry/api`),{BasicTracerProvider}=require_src$7(),contextManager=new AsyncLocalStorageContextManager;contextManager.enable(),context$1.setGlobalContextManager(contextManager);let provider=new BasicTracerProvider({resource:{attributes:{"service.name":appName}}});trace$1.setGlobalTracerProvider(provider)}exports.installTraceContextManager=installTraceContextManager,exports.Tracer=class{telemetryCollector;applicationID;executorID;constructor(telemetryCollector,appName=`dbos`){if(this.telemetryCollector=telemetryCollector,this.applicationID=utils_1.globalParams.appID,this.executorID=utils_1.globalParams.executorID,!utils_1.globalParams.enableOTLP)return;let{trace:trace$1}=__require(`@opentelemetry/api`),{BasicTracerProvider}=require_src$7(),tracer=new BasicTracerProvider({resource:{attributes:{"service.name":appName}}});trace$1.setGlobalTracerProvider(tracer)}startSpanWithContext(spanContext,name,attributes){if(!utils_1.globalParams.enableOTLP)return new StubSpan;let opentelemetry=__require(`@opentelemetry/api`),tracer=opentelemetry.trace.getTracer(`dbos-tracer`),ctx=opentelemetry.trace.setSpanContext(opentelemetry.context.active(),spanContext);return tracer.startSpan(name,{startTime:performance.now(),attributes},ctx)}startSpan(name,attributes,inputSpan){if(!utils_1.globalParams.enableOTLP)return new StubSpan;let parentSpan=inputSpan,opentelemetry=__require(`@opentelemetry/api`),{hrTime}=require_src$8(),tracer=opentelemetry.trace.getTracer(`dbos-tracer`),startTime=hrTime(performance.now());if(parentSpan){let ctx=opentelemetry.trace.setSpan(opentelemetry.context.active(),parentSpan);return tracer.startSpan(name,{startTime,attributes},ctx)}else return tracer.startSpan(name,{startTime,attributes})}endSpan(inputSpan){if(!utils_1.globalParams.enableOTLP)return;let{hrTime}=require_src$8(),span=inputSpan;span.setAttributes({applicationID:this.applicationID,applicationVersion:utils_1.globalParams.appVersion}),span.attributes&&!(`executorID`in span.attributes)&&span.setAttribute(`executorID`,this.executorID),span.end(hrTime(performance.now())),this.telemetryCollector.push(span)}}})),require_LogRecord=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SeverityNumber=void 0,(function(SeverityNumber){SeverityNumber[SeverityNumber.UNSPECIFIED=0]=`UNSPECIFIED`,SeverityNumber[SeverityNumber.TRACE=1]=`TRACE`,SeverityNumber[SeverityNumber.TRACE2=2]=`TRACE2`,SeverityNumber[SeverityNumber.TRACE3=3]=`TRACE3`,SeverityNumber[SeverityNumber.TRACE4=4]=`TRACE4`,SeverityNumber[SeverityNumber.DEBUG=5]=`DEBUG`,SeverityNumber[SeverityNumber.DEBUG2=6]=`DEBUG2`,SeverityNumber[SeverityNumber.DEBUG3=7]=`DEBUG3`,SeverityNumber[SeverityNumber.DEBUG4=8]=`DEBUG4`,SeverityNumber[SeverityNumber.INFO=9]=`INFO`,SeverityNumber[SeverityNumber.INFO2=10]=`INFO2`,SeverityNumber[SeverityNumber.INFO3=11]=`INFO3`,SeverityNumber[SeverityNumber.INFO4=12]=`INFO4`,SeverityNumber[SeverityNumber.WARN=13]=`WARN`,SeverityNumber[SeverityNumber.WARN2=14]=`WARN2`,SeverityNumber[SeverityNumber.WARN3=15]=`WARN3`,SeverityNumber[SeverityNumber.WARN4=16]=`WARN4`,SeverityNumber[SeverityNumber.ERROR=17]=`ERROR`,SeverityNumber[SeverityNumber.ERROR2=18]=`ERROR2`,SeverityNumber[SeverityNumber.ERROR3=19]=`ERROR3`,SeverityNumber[SeverityNumber.ERROR4=20]=`ERROR4`,SeverityNumber[SeverityNumber.FATAL=21]=`FATAL`,SeverityNumber[SeverityNumber.FATAL2=22]=`FATAL2`,SeverityNumber[SeverityNumber.FATAL3=23]=`FATAL3`,SeverityNumber[SeverityNumber.FATAL4=24]=`FATAL4`})(exports.SeverityNumber||={})})),require_NoopLogger=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NOOP_LOGGER=exports.NoopLogger=void 0;var NoopLogger=class{emit(_logRecord){}};exports.NoopLogger=NoopLogger,exports.NOOP_LOGGER=new NoopLogger})),require_NoopLoggerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NOOP_LOGGER_PROVIDER=exports.NoopLoggerProvider=void 0;let NoopLogger_1=require_NoopLogger();var NoopLoggerProvider=class{getLogger(_name,_version,_options){return new NoopLogger_1.NoopLogger}};exports.NoopLoggerProvider=NoopLoggerProvider,exports.NOOP_LOGGER_PROVIDER=new NoopLoggerProvider})),require_ProxyLogger=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProxyLogger=void 0;let NoopLogger_1=require_NoopLogger();exports.ProxyLogger=class{constructor(_provider,name,version$1,options){this._provider=_provider,this.name=name,this.version=version$1,this.options=options}emit(logRecord){this._getLogger().emit(logRecord)}_getLogger(){if(this._delegate)return this._delegate;let logger=this._provider._getDelegateLogger(this.name,this.version,this.options);return logger?(this._delegate=logger,this._delegate):NoopLogger_1.NOOP_LOGGER}}})),require_ProxyLoggerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProxyLoggerProvider=void 0;let NoopLoggerProvider_1=require_NoopLoggerProvider(),ProxyLogger_1=require_ProxyLogger();exports.ProxyLoggerProvider=class{getLogger(name,version$1,options){var _a;return this._getDelegateLogger(name,version$1,options)??new ProxyLogger_1.ProxyLogger(this,name,version$1,options)}_getDelegate(){var _a;return this._delegate??NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER}_setDelegate(delegate){this._delegate=delegate}_getDelegateLogger(name,version$1,options){var _a;return this._delegate?.getLogger(name,version$1,options)}}})),require_globalThis=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0,exports._globalThis=typeof globalThis==`object`?globalThis:global})),require_node$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0;var globalThis_1=require_globalThis();Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return globalThis_1._globalThis}})})),require_platform$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0;var node_1=require_node$3();Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return node_1._globalThis}})})),require_global_utils=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.API_BACKWARDS_COMPATIBILITY_VERSION=exports.makeGetter=exports._global=exports.GLOBAL_LOGS_API_KEY=void 0;let platform_1=require_platform$3();exports.GLOBAL_LOGS_API_KEY=Symbol.for(`io.opentelemetry.js.api.logs`),exports._global=platform_1._globalThis;function makeGetter(requiredVersion,instance,fallback){return version$1=>version$1===requiredVersion?instance:fallback}exports.makeGetter=makeGetter,exports.API_BACKWARDS_COMPATIBILITY_VERSION=1})),require_logs$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LogsAPI=void 0;let global_utils_1=require_global_utils(),NoopLoggerProvider_1=require_NoopLoggerProvider(),ProxyLoggerProvider_1=require_ProxyLoggerProvider();exports.LogsAPI=class LogsAPI{constructor(){this._proxyLoggerProvider=new ProxyLoggerProvider_1.ProxyLoggerProvider}static getInstance(){return this._instance||=new LogsAPI,this._instance}setGlobalLoggerProvider(provider){return global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]=(0,global_utils_1.makeGetter)(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION,provider,NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(provider),provider)}getLoggerProvider(){var _a,_b;return global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]?.call(global_utils_1._global,global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)??this._proxyLoggerProvider}getLogger(name,version$1,options){return this.getLoggerProvider().getLogger(name,version$1,options)}disable(){delete global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new ProxyLoggerProvider_1.ProxyLoggerProvider}}})),require_src$6=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.logs=exports.ProxyLoggerProvider=exports.NoopLogger=exports.NOOP_LOGGER=exports.SeverityNumber=void 0;var LogRecord_1=require_LogRecord();Object.defineProperty(exports,`SeverityNumber`,{enumerable:!0,get:function(){return LogRecord_1.SeverityNumber}});var NoopLogger_1=require_NoopLogger();Object.defineProperty(exports,`NOOP_LOGGER`,{enumerable:!0,get:function(){return NoopLogger_1.NOOP_LOGGER}}),Object.defineProperty(exports,`NoopLogger`,{enumerable:!0,get:function(){return NoopLogger_1.NoopLogger}});var ProxyLoggerProvider_1=require_ProxyLoggerProvider();Object.defineProperty(exports,`ProxyLoggerProvider`,{enumerable:!0,get:function(){return ProxyLoggerProvider_1.ProxyLoggerProvider}}),exports.logs=require_logs$3().LogsAPI.getInstance()})),require_LogRecordImpl=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LogRecordImpl=void 0;let api$4=__require(`@opentelemetry/api`),core_1=require_src$8();exports.LogRecordImpl=class{hrTime;hrTimeObserved;spanContext;resource;instrumentationScope;attributes={};_severityText;_severityNumber;_body;_eventName;totalAttributesCount=0;_isReadonly=!1;_logRecordLimits;set severityText(severityText){this._isLogRecordReadonly()||(this._severityText=severityText)}get severityText(){return this._severityText}set severityNumber(severityNumber){this._isLogRecordReadonly()||(this._severityNumber=severityNumber)}get severityNumber(){return this._severityNumber}set body(body){this._isLogRecordReadonly()||(this._body=body)}get body(){return this._body}get eventName(){return this._eventName}set eventName(eventName){this._isLogRecordReadonly()||(this._eventName=eventName)}get droppedAttributesCount(){return this.totalAttributesCount-Object.keys(this.attributes).length}constructor(_sharedState,instrumentationScope,logRecord){let{timestamp,observedTimestamp,eventName,severityNumber,severityText,body,attributes={},context:context$1}=logRecord,now=Date.now();if(this.hrTime=(0,core_1.timeInputToHrTime)(timestamp??now),this.hrTimeObserved=(0,core_1.timeInputToHrTime)(observedTimestamp??now),context$1){let spanContext=api$4.trace.getSpanContext(context$1);spanContext&&api$4.isSpanContextValid(spanContext)&&(this.spanContext=spanContext)}this.severityNumber=severityNumber,this.severityText=severityText,this.body=body,this.resource=_sharedState.resource,this.instrumentationScope=instrumentationScope,this._logRecordLimits=_sharedState.logRecordLimits,this._eventName=eventName,this.setAttributes(attributes)}setAttribute(key,value){return this._isLogRecordReadonly()||value===null?this:key.length===0?(api$4.diag.warn(`Invalid attribute key: ${key}`),this):!(0,core_1.isAttributeValue)(value)&&!(typeof value==`object`&&!Array.isArray(value)&&Object.keys(value).length>0)?(api$4.diag.warn(`Invalid attribute value set for key: ${key}`),this):(this.totalAttributesCount+=1,Object.keys(this.attributes).length>=this._logRecordLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,key)?(this.droppedAttributesCount===1&&api$4.diag.warn(`Dropping extra attributes.`),this):((0,core_1.isAttributeValue)(value)?this.attributes[key]=this._truncateToSize(value):this.attributes[key]=value,this))}setAttributes(attributes){for(let[k,v]of Object.entries(attributes))this.setAttribute(k,v);return this}setBody(body){return this.body=body,this}setEventName(eventName){return this.eventName=eventName,this}setSeverityNumber(severityNumber){return this.severityNumber=severityNumber,this}setSeverityText(severityText){return this.severityText=severityText,this}_makeReadonly(){this._isReadonly=!0}_truncateToSize(value){let limit=this._logRecordLimits.attributeValueLengthLimit;return limit<=0?(api$4.diag.warn(`Attribute value limit must be positive, got ${limit}`),value):typeof value==`string`?this._truncateToLimitUtil(value,limit):Array.isArray(value)?value.map(val=>typeof val==`string`?this._truncateToLimitUtil(val,limit):val):value}_truncateToLimitUtil(value,limit){return value.length<=limit?value:value.substring(0,limit)}_isLogRecordReadonly(){return this._isReadonly&&api$4.diag.warn(`Can not execute the operation on emitted log record`),this._isReadonly}}})),require_Logger=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Logger=void 0;let api_1$9=__require(`@opentelemetry/api`),LogRecordImpl_1=require_LogRecordImpl();exports.Logger=class{instrumentationScope;_sharedState;constructor(instrumentationScope,_sharedState){this.instrumentationScope=instrumentationScope,this._sharedState=_sharedState}emit(logRecord){let currentContext=logRecord.context||api_1$9.context.active(),logRecordInstance=new LogRecordImpl_1.LogRecordImpl(this._sharedState,this.instrumentationScope,{context:currentContext,...logRecord});this._sharedState.activeProcessor.onEmit(logRecordInstance,currentContext),logRecordInstance._makeReadonly()}}})),require_config$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.reconfigureLimits=exports.loadDefaultConfig=void 0;let core_1=require_src$8();function loadDefaultConfig(){return{forceFlushTimeoutMillis:3e4,logRecordLimits:{attributeValueLengthLimit:(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0,attributeCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT`)??128},includeTraceContext:!0}}exports.loadDefaultConfig=loadDefaultConfig;function reconfigureLimits(logRecordLimits){return{attributeCountLimit:logRecordLimits.attributeCountLimit??(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_COUNT_LIMIT`)??128,attributeValueLengthLimit:logRecordLimits.attributeValueLengthLimit??(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0}}exports.reconfigureLimits=reconfigureLimits})),require_NoopLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NoopLogRecordProcessor=void 0,exports.NoopLogRecordProcessor=class{forceFlush(){return Promise.resolve()}onEmit(_logRecord,_context){}shutdown(){return Promise.resolve()}}})),require_MultiLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MultiLogRecordProcessor=void 0;let core_1=require_src$8();exports.MultiLogRecordProcessor=class{processors;forceFlushTimeoutMillis;constructor(processors,forceFlushTimeoutMillis){this.processors=processors,this.forceFlushTimeoutMillis=forceFlushTimeoutMillis}async forceFlush(){let timeout=this.forceFlushTimeoutMillis;await Promise.all(this.processors.map(processor=>(0,core_1.callWithTimeout)(processor.forceFlush(),timeout)))}onEmit(logRecord,context$1){this.processors.forEach(processors=>processors.onEmit(logRecord,context$1))}async shutdown(){await Promise.all(this.processors.map(processor=>processor.shutdown()))}}})),require_LoggerProviderSharedState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LoggerProviderSharedState=void 0;let NoopLogRecordProcessor_1=require_NoopLogRecordProcessor(),MultiLogRecordProcessor_1=require_MultiLogRecordProcessor();exports.LoggerProviderSharedState=class{resource;forceFlushTimeoutMillis;logRecordLimits;processors;loggers=new Map;activeProcessor;registeredLogRecordProcessors=[];constructor(resource,forceFlushTimeoutMillis,logRecordLimits,processors){this.resource=resource,this.forceFlushTimeoutMillis=forceFlushTimeoutMillis,this.logRecordLimits=logRecordLimits,this.processors=processors,processors.length>0?(this.registeredLogRecordProcessors=processors,this.activeProcessor=new MultiLogRecordProcessor_1.MultiLogRecordProcessor(this.registeredLogRecordProcessors,this.forceFlushTimeoutMillis)):this.activeProcessor=new NoopLogRecordProcessor_1.NoopLogRecordProcessor}}})),require_LoggerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LoggerProvider=exports.DEFAULT_LOGGER_NAME=void 0;let api_1$8=__require(`@opentelemetry/api`),api_logs_1=require_src$6(),resources_1$1=__require(`@opentelemetry/resources`),core_1=require_src$8(),Logger_1=require_Logger(),config_1=require_config$1(),LoggerProviderSharedState_1=require_LoggerProviderSharedState();exports.DEFAULT_LOGGER_NAME=`unknown`,exports.LoggerProvider=class{_shutdownOnce;_sharedState;constructor(config={}){let mergedConfig=(0,core_1.merge)({},(0,config_1.loadDefaultConfig)(),config),resource=config.resource??(0,resources_1$1.defaultResource)();this._sharedState=new LoggerProviderSharedState_1.LoggerProviderSharedState(resource,mergedConfig.forceFlushTimeoutMillis,(0,config_1.reconfigureLimits)(mergedConfig.logRecordLimits),config?.processors??[]),this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this)}getLogger(name,version$1,options){if(this._shutdownOnce.isCalled)return api_1$8.diag.warn(`A shutdown LoggerProvider cannot provide a Logger`),api_logs_1.NOOP_LOGGER;name||api_1$8.diag.warn(`Logger requested without instrumentation scope name.`);let loggerName=name||exports.DEFAULT_LOGGER_NAME,key=`${loggerName}@${version$1||``}:${options?.schemaUrl||``}`;return this._sharedState.loggers.has(key)||this._sharedState.loggers.set(key,new Logger_1.Logger({name:loggerName,version:version$1,schemaUrl:options?.schemaUrl},this._sharedState)),this._sharedState.loggers.get(key)}forceFlush(){return this._shutdownOnce.isCalled?(api_1$8.diag.warn(`invalid attempt to force flush after LoggerProvider shutdown`),this._shutdownOnce.promise):this._sharedState.activeProcessor.forceFlush()}shutdown(){return this._shutdownOnce.isCalled?(api_1$8.diag.warn(`shutdown may only be called once per LoggerProvider`),this._shutdownOnce.promise):this._shutdownOnce.call()}_shutdown(){return this._sharedState.activeProcessor.shutdown()}}})),require_ConsoleLogRecordExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ConsoleLogRecordExporter=void 0;let core_1=require_src$8();exports.ConsoleLogRecordExporter=class{export(logs,resultCallback){this._sendLogRecords(logs,resultCallback)}shutdown(){return Promise.resolve()}_exportInfo(logRecord){return{resource:{attributes:logRecord.resource.attributes},instrumentationScope:logRecord.instrumentationScope,timestamp:(0,core_1.hrTimeToMicroseconds)(logRecord.hrTime),traceId:logRecord.spanContext?.traceId,spanId:logRecord.spanContext?.spanId,traceFlags:logRecord.spanContext?.traceFlags,severityText:logRecord.severityText,severityNumber:logRecord.severityNumber,body:logRecord.body,attributes:logRecord.attributes}}_sendLogRecords(logRecords,done){for(let logRecord of logRecords)console.dir(this._exportInfo(logRecord),{depth:3});done?.({code:core_1.ExportResultCode.SUCCESS})}}})),require_SimpleLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SimpleLogRecordProcessor=void 0;let core_1=require_src$8();exports.SimpleLogRecordProcessor=class{_exporter;_shutdownOnce;_unresolvedExports;constructor(_exporter){this._exporter=_exporter,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._unresolvedExports=new Set}onEmit(logRecord){if(this._shutdownOnce.isCalled)return;let doExport=()=>core_1.internal._export(this._exporter,[logRecord]).then(result=>{result.code!==core_1.ExportResultCode.SUCCESS&&(0,core_1.globalErrorHandler)(result.error??Error(`SimpleLogRecordProcessor: log record export failed (status ${result})`))}).catch(core_1.globalErrorHandler);if(logRecord.resource.asyncAttributesPending){let exportPromise=logRecord.resource.waitForAsyncAttributes?.().then(()=>(this._unresolvedExports.delete(exportPromise),doExport()),core_1.globalErrorHandler);exportPromise!=null&&this._unresolvedExports.add(exportPromise)}else doExport()}async forceFlush(){await Promise.all(Array.from(this._unresolvedExports))}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}})),require_InMemoryLogRecordExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.InMemoryLogRecordExporter=void 0;let core_1=require_src$8();exports.InMemoryLogRecordExporter=class{_finishedLogRecords=[];_stopped=!1;export(logs,resultCallback){if(this._stopped)return resultCallback({code:core_1.ExportResultCode.FAILED,error:Error(`Exporter has been stopped`)});this._finishedLogRecords.push(...logs),resultCallback({code:core_1.ExportResultCode.SUCCESS})}shutdown(){return this._stopped=!0,this.reset(),Promise.resolve()}getFinishedLogRecords(){return this._finishedLogRecords}reset(){this._finishedLogRecords=[]}}})),require_BatchLogRecordProcessorBase=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessorBase=void 0;let api_1$7=__require(`@opentelemetry/api`),core_1=require_src$8();exports.BatchLogRecordProcessorBase=class{_exporter;_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_isExporting=!1;_finishedLogRecords=[];_timer;_shutdownOnce;constructor(_exporter,config){this._exporter=_exporter,this._maxExportBatchSize=config?.maxExportBatchSize??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_MAX_EXPORT_BATCH_SIZE`)??512,this._maxQueueSize=config?.maxQueueSize??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_MAX_QUEUE_SIZE`)??2048,this._scheduledDelayMillis=config?.scheduledDelayMillis??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_SCHEDULE_DELAY`)??5e3,this._exportTimeoutMillis=config?.exportTimeoutMillis??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_EXPORT_TIMEOUT`)??3e4,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(api_1$7.diag.warn(`BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize`),this._maxExportBatchSize=this._maxQueueSize)}onEmit(logRecord){this._shutdownOnce.isCalled||this._addToBuffer(logRecord)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}shutdown(){return this._shutdownOnce.call()}async _shutdown(){this.onShutdown(),await this._flushAll(),await this._exporter.shutdown()}_addToBuffer(logRecord){this._finishedLogRecords.length>=this._maxQueueSize||(this._finishedLogRecords.push(logRecord),this._maybeStartTimer())}_flushAll(){return new Promise((resolve,reject)=>{let promises=[],batchCount=Math.ceil(this._finishedLogRecords.length/this._maxExportBatchSize);for(let i=0;i<batchCount;i++)promises.push(this._flushOneBatch());Promise.all(promises).then(()=>{resolve()}).catch(reject)})}_flushOneBatch(){return this._clearTimer(),this._finishedLogRecords.length===0?Promise.resolve():new Promise((resolve,reject)=>{(0,core_1.callWithTimeout)(this._export(this._finishedLogRecords.splice(0,this._maxExportBatchSize)),this._exportTimeoutMillis).then(()=>resolve()).catch(reject)})}_maybeStartTimer(){if(this._isExporting)return;let flush=()=>{this._isExporting=!0,this._flushOneBatch().then(()=>{this._isExporting=!1,this._finishedLogRecords.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(e=>{this._isExporting=!1,(0,core_1.globalErrorHandler)(e)})};if(this._finishedLogRecords.length>=this._maxExportBatchSize)return flush();this._timer===void 0&&(this._timer=setTimeout(()=>flush(),this._scheduledDelayMillis),typeof this._timer!=`number`&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}_export(logRecords){let doExport=()=>core_1.internal._export(this._exporter,logRecords).then(result=>{result.code!==core_1.ExportResultCode.SUCCESS&&(0,core_1.globalErrorHandler)(result.error??Error(`BatchLogRecordProcessor: log record export failed (status ${result})`))}).catch(core_1.globalErrorHandler),pendingResources=logRecords.map(logRecord=>logRecord.resource).filter(resource=>resource.asyncAttributesPending);return pendingResources.length===0?doExport():Promise.all(pendingResources.map(resource=>resource.waitForAsyncAttributes?.())).then(doExport,core_1.globalErrorHandler)}}})),require_BatchLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=void 0;let BatchLogRecordProcessorBase_1=require_BatchLogRecordProcessorBase();exports.BatchLogRecordProcessor=class extends BatchLogRecordProcessorBase_1.BatchLogRecordProcessorBase{onShutdown(){}}})),require_node$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=void 0;var BatchLogRecordProcessor_1=require_BatchLogRecordProcessor();Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return BatchLogRecordProcessor_1.BatchLogRecordProcessor}})})),require_platform$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=void 0;var node_1=require_node$2();Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return node_1.BatchLogRecordProcessor}})})),require_src$5=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=exports.InMemoryLogRecordExporter=exports.SimpleLogRecordProcessor=exports.ConsoleLogRecordExporter=exports.LoggerProvider=void 0;var LoggerProvider_1=require_LoggerProvider();Object.defineProperty(exports,`LoggerProvider`,{enumerable:!0,get:function(){return LoggerProvider_1.LoggerProvider}});var ConsoleLogRecordExporter_1=require_ConsoleLogRecordExporter();Object.defineProperty(exports,`ConsoleLogRecordExporter`,{enumerable:!0,get:function(){return ConsoleLogRecordExporter_1.ConsoleLogRecordExporter}});var SimpleLogRecordProcessor_1=require_SimpleLogRecordProcessor();Object.defineProperty(exports,`SimpleLogRecordProcessor`,{enumerable:!0,get:function(){return SimpleLogRecordProcessor_1.SimpleLogRecordProcessor}});var InMemoryLogRecordExporter_1=require_InMemoryLogRecordExporter();Object.defineProperty(exports,`InMemoryLogRecordExporter`,{enumerable:!0,get:function(){return InMemoryLogRecordExporter_1.InMemoryLogRecordExporter}});var platform_1=require_platform$2();Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return platform_1.BatchLogRecordProcessor}})})),require_logs$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOSConsoleLogger=exports.DBOSContextualLogger=exports.GlobalLogger=void 0;let utils_1=require_utils$3();var SeverityNumber;(function(SeverityNumber){SeverityNumber[SeverityNumber.UNSPECIFIED=0]=`UNSPECIFIED`,SeverityNumber[SeverityNumber.TRACE=1]=`TRACE`,SeverityNumber[SeverityNumber.TRACE2=2]=`TRACE2`,SeverityNumber[SeverityNumber.TRACE3=3]=`TRACE3`,SeverityNumber[SeverityNumber.TRACE4=4]=`TRACE4`,SeverityNumber[SeverityNumber.DEBUG=5]=`DEBUG`,SeverityNumber[SeverityNumber.DEBUG2=6]=`DEBUG2`,SeverityNumber[SeverityNumber.DEBUG3=7]=`DEBUG3`,SeverityNumber[SeverityNumber.DEBUG4=8]=`DEBUG4`,SeverityNumber[SeverityNumber.INFO=9]=`INFO`,SeverityNumber[SeverityNumber.INFO2=10]=`INFO2`,SeverityNumber[SeverityNumber.INFO3=11]=`INFO3`,SeverityNumber[SeverityNumber.INFO4=12]=`INFO4`,SeverityNumber[SeverityNumber.WARN=13]=`WARN`,SeverityNumber[SeverityNumber.WARN2=14]=`WARN2`,SeverityNumber[SeverityNumber.WARN3=15]=`WARN3`,SeverityNumber[SeverityNumber.WARN4=16]=`WARN4`,SeverityNumber[SeverityNumber.ERROR=17]=`ERROR`,SeverityNumber[SeverityNumber.ERROR2=18]=`ERROR2`,SeverityNumber[SeverityNumber.ERROR3=19]=`ERROR3`,SeverityNumber[SeverityNumber.ERROR4=20]=`ERROR4`,SeverityNumber[SeverityNumber.FATAL=21]=`FATAL`,SeverityNumber[SeverityNumber.FATAL2=22]=`FATAL2`,SeverityNumber[SeverityNumber.FATAL3=23]=`FATAL3`,SeverityNumber[SeverityNumber.FATAL4=24]=`FATAL4`})(SeverityNumber||={}),exports.GlobalLogger=class{telemetryCollector;logger;addContextMetadata;isLogging=!1;constructor(telemetryCollector,config,appName=`dbos`){if(this.telemetryCollector=telemetryCollector,this.addContextMetadata=config?.addContextMetadata||!1,!utils_1.globalParams.enableOTLP){this.logger=new DBOSConsoleLogger(config??{});return}let TransportStream=__require(`winston-transport`);class OTLPLogQueueTransport extends TransportStream{telemetryCollector;name=`OTLPLogQueueTransport`;otelLogger;applicationID;executorID;constructor(telemetryCollector$1,logLevel){super(),this.telemetryCollector=telemetryCollector$1,this.level=logLevel;let{LoggerProvider}=require_src$5(),logRecordProcessor={forceFlush:async()=>{},onEmit(logRecord){telemetryCollector$1.push(logRecord)},shutdown:async()=>{}};this.otelLogger=new LoggerProvider({resource:{attributes:{"service.name":appName}},processors:[logRecordProcessor]}).getLogger(`dbos-logger`),this.applicationID=utils_1.globalParams.appID,this.executorID=utils_1.globalParams.executorID}log(info,callback){let{level,message,stack,span}=info,levelToSeverityNumber={error:SeverityNumber.ERROR,warn:SeverityNumber.WARN,info:SeverityNumber.INFO,debug:SeverityNumber.DEBUG};this.otelLogger.emit({severityNumber:levelToSeverityNumber[level],severityText:level,body:message,timestamp:performance.now(),observedTimestamp:performance.now(),attributes:{...span?.attributes,traceId:span?.spanContext()?.traceId,spanId:span?.spanContext()?.spanId,stack,applicationID:this.applicationID,applicationVersion:utils_1.globalParams.appVersion,executorID:this.executorID}}),callback()}}let{transports,createLogger}=__require(`winston`),winstonTransports=[];winstonTransports.push(new transports.Console({format:getConsoleFormat(),level:config?.logLevel||`info`,silent:config?.silent||!1,forceConsole:config?.forceConsole||!1}));let otlpTransport;utils_1.globalParams.enableOTLP&&this.telemetryCollector?.exporter&&(otlpTransport=new OTLPLogQueueTransport(this.telemetryCollector,config?.logLevel||`info`),winstonTransports.push(otlpTransport)),this.logger=createLogger({transports:winstonTransports}),utils_1.globalParams.enableOTLP&&process.env.DBOS__CAPTURE_STD!==`false`&&this.telemetryCollector?.exporter&&(0,utils_1.interceptStreams)((msg,stream)=>{stream===`stdout`?this.isLogging||otlpTransport?.log({level:`info`,message:msg.trim()},()=>{}):this.isLogging||otlpTransport?.log({level:`error`,message:msg.trim(),stack:Error().stack},()=>{})})}info(logEntry,metadata){this.isLogging=!0,typeof logEntry==`string`?this.logger.info(logEntry,metadata):this.logger.info(utils_1.DBOSJSON.stringify(logEntry),metadata),this.isLogging=!1}debug(logEntry,metadata){this.isLogging=!0,typeof logEntry==`string`?this.logger.debug(logEntry,metadata):this.logger.debug(utils_1.DBOSJSON.stringify(logEntry),metadata),this.isLogging=!1}warn(logEntry,metadata){this.isLogging=!0,typeof logEntry==`string`?this.logger.warn(logEntry,metadata):this.logger.warn(utils_1.DBOSJSON.stringify(logEntry),metadata),this.isLogging=!1}error(inputError,metadata){this.isLogging=!0,inputError instanceof Error?this.logger.error(inputError.message,{...metadata,stack:inputError.stack}):typeof inputError==`string`?this.logger.error(inputError,{...metadata,stack:Error().stack}):this.logger.error(utils_1.DBOSJSON.stringify(inputError),{...metadata,stack:Error().stack}),this.isLogging=!1}async destroy(){await this.telemetryCollector?.destroy()}},exports.DBOSContextualLogger=class{globalLogger;ctx;includeContextMetadata;constructor(globalLogger,ctx){this.globalLogger=globalLogger,this.ctx=ctx,this.includeContextMetadata=this.globalLogger.addContextMetadata}info(logEntry,metadata){this.globalLogger.info(logEntry,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}debug(logEntry,metadata){this.globalLogger.debug(logEntry,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}warn(logEntry,metadata){this.globalLogger.warn(logEntry,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}error(inputError,metadata){this.globalLogger.error(inputError,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}};var DBOSConsoleLogger=class{config;constructor(config){this.config=config}info(logEntry,_metadata){console.log(logEntry)}debug(logEntry,_metadata){this.config.logLevel===`debug`&&console.debug(logEntry)}warn(logEntry,_metadata){console.warn(logEntry)}error(inputError,metadata){inputError instanceof Error?console.error(inputError):metadata?.stack?console.error(inputError,`
|
|
2
|
+
import{n as loadEvents}from"./event-Su-wo96Y.mjs";import{a as COMMANDS_DIR,c as FILE_EXT,i as APPOS_DIR,l as PUBLIC_DIR,o as DATABASES_DIR,r as loadWorkflows,u as ROUTES_DIR}from"./workflow-CsbetKWL.mjs";import{createRequire,register}from"node:module";import{spawn}from"node:child_process";import path,{basename,dirname,join,resolve}from"node:path";import fs from"node:fs";import{DBOS}from"@dbos-inc/dbos-sdk";import colors from"picocolors";import fs$1,{access,cp,glob,mkdir,rm,writeFile}from"node:fs/promises";import{camelCase}from"es-toolkit";import{z}from"zod";import{createClient}from"redis";import*as p from"@clack/prompts";import*as esbuild from"esbuild";import{generateDrizzleJson,generateMigration}from"drizzle-kit/api-postgres";import{migrate}from"drizzle-orm/node-postgres/migrator";import{sql}from"drizzle-orm";import"drizzle-orm/node-postgres";import"pg";import{diag}from"@opentelemetry/api";import{ATTR_SERVICE_NAME,ATTR_SERVICE_VERSION}from"@opentelemetry/semantic-conventions";import{resourceFromAttributes}from"@opentelemetry/resources";import*as fs$2 from"fs";import*as path$1 from"path";import{Readable}from"stream";import*as zlib from"zlib";import*as repl from"node:repl";import{toNodeHandler}from"better-auth/node";import cors from"cors";import{rateLimit}from"express-rate-limit";import helmet from"helmet";import{RedisStore}from"rate-limit-redis";import express from"ultimate-express";import{getNodeAutoInstrumentations}from"@opentelemetry/auto-instrumentations-node";import{OTLPTraceExporter}from"@opentelemetry/exporter-trace-otlp-http";import{PinoInstrumentation}from"@opentelemetry/instrumentation-pino";import{NodeSDK}from"@opentelemetry/sdk-node";import{BatchSpanProcessor}from"@opentelemetry/sdk-trace-node";import{remixRoutesOptionAdapter}from"@react-router/remix-routes-option-adapter";import{isEmpty}from"es-toolkit/compat";import{flatRoutes}from"remix-flat-routes";import{createDocument}from"zod-openapi";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__esmMin=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res),__commonJSMin=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports),__export=(all,symbols)=>{let target={};for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0});return symbols&&__defProp(target,Symbol.toStringTag,{value:`Module`}),target},__copyProps=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(var keys=__getOwnPropNames(from),i=0,n=keys.length,key;i<n;i++)key=keys[i],!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:(k=>from[k]).bind(null,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__reExport=(target,mod,secondTarget)=>(__copyProps(target,mod,`default`),secondTarget&&__copyProps(secondTarget,mod,`default`)),__toCommonJS=mod=>__hasOwnProp.call(mod,`module.exports`)?mod[`module.exports`]:__copyProps(__defProp({},`__esModule`,{value:!0}),mod),__require=createRequire(import.meta.url);function defineCommandContext(args,opts,container){return{args,ask:p.text,cancel(message=`Cancelled`){p.cancel(message),process.exit(0)},choice:p.select,async cleanup(){for(let[,db]of Object.entries(container.db))await db.$client.end();for(let[,cache]of Object.entries(container.cache))await cache.disconnect();await container.eventBus.close(),container.logger.flush()},comment(message){p.log.message(colors.dim(message))},confirm:p.confirm,container,error(message){p.log.error(message)},async exec(command,args$1){return new Promise((resolve$1,reject)=>{let proc=spawn(command,args$1,{stdio:[`inherit`,`pipe`,`pipe`],cwd:process.cwd()}),stderr=``;proc.stderr?.on(`data`,data=>{stderr+=data.toString()}),proc.on(`close`,code=>{code===0?resolve$1():reject(Error(stderr||`Command failed with exit code ${code}`))}),proc.on(`error`,reject)})},fail(message){p.log.error(message),p.outro(colors.red(`Failed`)),process.exit(1)},group:p.group,info(message){p.log.info(message)},intro(title){p.intro(title)},isCancel:p.isCancel,line(message){p.log.message(message)},multiselect:p.multiselect,note(message,title){p.note(message,title)},opts,outro(message=`Done`){p.outro(message)},secret:p.password,async spinner(message,fn){let s=p.spinner();s.start(message);try{let result=await fn();return s.stop(message),result}catch(error){throw s.stop(message,1),error}},step(message){p.log.step(message)},success(message){p.log.success(message)},table(headers,rows){let colWidths=headers.map((h,i)=>Math.max(h.length,...rows.map(r=>(r[i]||``).length))),lines=[headers.map((h,i)=>h.padEnd(colWidths[i])).join(` │ `),colWidths.map(w=>`─`.repeat(w)).join(`─┼─`),...rows.map(row=>row.map((cell,i)=>(cell||``).padEnd(colWidths[i])).join(` │ `))];p.note(lines.join(`
|
|
3
|
+
`))},async task(name,fn){let start=Date.now(),result=await fn(),elapsed=Date.now()-start,maxWidth=45,suffix=`${elapsed}ms DONE`,dots=`.`.repeat(Math.max(1,45-name.length-suffix.length));return p.log.message(`${name} ${colors.dim(dots)} ${colors.green(suffix)}`,{symbol:colors.green(`◆`)}),result},taskStatus(name,status){let dots=`.`.repeat(Math.max(1,45-name.length-status.length));p.log.message(`${name} ${colors.dim(dots)} ${colors.dim(status)}`,{symbol:colors.dim(`◇`)})},warn(message){p.log.warn(message)}}}function defineCommand(def){return{aliases:def.aliases||[],description:def.description,args:def.args||[],opts:def.opts||{},run:def.run}}async function collectEntryPoints(){let entryPoints=[];try{await access(`./main.ts`),entryPoints.push(`./main.ts`)}catch{}for await(let file of glob(`./api/**/*.ts`))file.endsWith(`.test.ts`)||file.endsWith(`.spec.ts`)||file.includes(`/__fixtures__/`)||file.includes(`/databases/`)||entryPoints.push(file);return entryPoints}var build_default=defineCommand({description:`Build the application for production deployment`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`build`);let entryPoints=await collectEntryPoints();ctx.step(`Found ${entryPoints.length} entry points`),await ctx.spinner(`Building production bundle`,async()=>{await rm(`./dist`,{recursive:!0,force:!0}),await esbuild.build({entryPoints,outdir:`./dist`,outbase:`.`,bundle:!0,platform:`node`,format:`esm`,minify:!0,splitting:!0,sourcemap:!0,packages:`external`,target:`node24`}),await cp(`./api/databases`,`./dist/api/databases`,{recursive:!0})}),ctx.success(`Built to ./dist`),ctx.outro()}});const migrationsSchema=`public`;function defineMigrationOpts(name,type=`schema`){let folder=type===`schema`?`schema-migrations`:`data-migrations`,table=type===`schema`?`schema-migrations`:`data-migrations`;return{migrationsFolder:`${join(APPOS_DIR,DATABASES_DIR)}/${name}/${folder}`,migrationsSchema:`public`,migrationsTable:table}}var require_error=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getDBOSErrorCode=exports.DBOSInvalidQueuePriorityError=exports.DBOSQueueDuplicatedError=exports.QueueDedupIDDuplicated=exports.DBOSAwaitedWorkflowCancelledError=exports.DBOSUnexpectedStepError=exports.DBOSConflictingRegistrationError=exports.DBOSWorkflowCancelledError=exports.DBOSMaxStepRetriesError=exports.DBOSConflictingWorkflowError=exports.DBOSInvalidWorkflowTransitionError=exports.DBOSExecutorNotInitializedError=exports.DBOSMaxRecoveryAttemptsExceededError=exports.DBOSFailLoadOperationsError=exports.DBOSNonExistentWorkflowError=exports.DBOSDebuggerError=exports.DBOSConfigKeyTypeError=exports.DBOSNotAuthorizedError=exports.DBOSDataValidationError=exports.DBOSNotRegisteredError=exports.DBOSWorkflowConflictError=exports.DBOSInitializationError=exports.DBOSError=exports.isDataValidationError=void 0;function isDataValidationError(e){let dbosErrorCode=e?.dbosErrorCode;return dbosErrorCode?dbosErrorCode===DataValidationError:!1}exports.isDataValidationError=isDataValidationError;var DBOSError=class extends Error{dbosErrorCode;constructor(msg,dbosErrorCode=1){super(msg),this.dbosErrorCode=dbosErrorCode}};exports.DBOSError=DBOSError;let InitializationError=3;exports.DBOSInitializationError=class extends DBOSError{error;constructor(msg,error){super(msg,3),this.error=error}};let ConflictingWFIDError=5;exports.DBOSWorkflowConflictError=class extends DBOSError{constructor(workflowID){super(`Conflicting WF ID ${workflowID}`,5)}};let NotRegisteredError=6;exports.DBOSNotRegisteredError=class extends DBOSError{constructor(name,fullmsg){let msg=fullmsg??`Operation (Name: ${name}) not registered`;super(msg,6)}};let DataValidationError=9;exports.DBOSDataValidationError=class extends DBOSError{constructor(msg){super(msg,9)}};let NotAuthorizedError=12;exports.DBOSNotAuthorizedError=class extends DBOSError{status;constructor(msg,status=403){super(msg,12),this.status=status}};let ConfigKeyTypeError=14;exports.DBOSConfigKeyTypeError=class extends DBOSError{constructor(configKey,expectedType,actualType){super(`${configKey} should be of type ${expectedType}, but got ${actualType}`,14)}};let DebuggerError=15;exports.DBOSDebuggerError=class extends DBOSError{constructor(msg){super(`DEBUGGER: `+msg,15)}};let NonExistentWorkflowError=16;exports.DBOSNonExistentWorkflowError=class extends DBOSError{constructor(msg){super(msg,16)}};let FailLoadOperationsError=17;exports.DBOSFailLoadOperationsError=class extends DBOSError{constructor(msg){super(msg,17)}};let MaxRecoveryAttemptsExceededError=18;exports.DBOSMaxRecoveryAttemptsExceededError=class extends DBOSError{constructor(workflowID,maxRetries){super(`Workflow ${workflowID} has exceeded its maximum of ${maxRetries} execution or recovery attempts. Further attempts to execute or recover it will fail.`,18)}};let ExecutorNotInitializedError=20;exports.DBOSExecutorNotInitializedError=class extends DBOSError{constructor(){super(`DBOS not initialized`,20)}};let InvalidWorkflowTransition=21;exports.DBOSInvalidWorkflowTransitionError=class extends DBOSError{constructor(msg){super(msg??`Invalid workflow state`,21)}};let ConflictingWorkflowError=22;exports.DBOSConflictingWorkflowError=class extends DBOSError{constructor(workflowID,msg){super(`Conflicting workflow invocation with the same ID (${workflowID}): ${msg}`,22)}};let MaximumRetriesError=23;exports.DBOSMaxStepRetriesError=class extends DBOSError{errors;constructor(stepName,maxRetries,errors){let formattedErrors=errors.map((error,index)=>`Error ${index+1}: ${error.message}`).join(`. `);super(`Step ${stepName} has exceeded its maximum of ${maxRetries} retries. Previous errors: ${formattedErrors}`,23),this.errors=errors}};let WorkFlowCancelled=24;exports.DBOSWorkflowCancelledError=class extends DBOSError{workflowID;constructor(workflowID){super(`Workflow ${workflowID} has been cancelled`,24),this.workflowID=workflowID}};let ConflictingRegistrationError=25;exports.DBOSConflictingRegistrationError=class extends DBOSError{constructor(msg){super(msg,25)}};let UnexpectedStep=26;exports.DBOSUnexpectedStepError=class extends DBOSError{workflowID;stepID;expectedName;constructor(workflowID,stepID,expectedName,recordedName){super(`During execution of workflow ${workflowID} step ${stepID}, function ${recordedName} was recorded when ${expectedName} was expected. Check that your workflow is deterministic.`,26),this.workflowID=workflowID,this.stepID=stepID,this.expectedName=expectedName}};let TargetWorkFlowCancelled=27;exports.DBOSAwaitedWorkflowCancelledError=class extends DBOSError{workflowID;constructor(workflowID){super(`Awaited ${workflowID} was cancelled`,27),this.workflowID=workflowID}},exports.QueueDedupIDDuplicated=28,exports.DBOSQueueDuplicatedError=class extends DBOSError{workflowID;queue;deduplicationID;constructor(workflowID,queue,deduplicationID){super(`Workflow ${workflowID} was deduplicated due to an existing workflow in queue ${queue} with deduplication ID ${deduplicationID}.`,exports.QueueDedupIDDuplicated),this.workflowID=workflowID,this.queue=queue,this.deduplicationID=deduplicationID}};let InvalidQueuePriority=29;exports.DBOSInvalidQueuePriorityError=class extends DBOSError{priority;min;max;constructor(priority,min,max){super(`Invalid priority ${priority}. Priority must be between ${min} and ${max}.`,29),this.priority=priority,this.min=min,this.max=max}};function getDBOSErrorCode(e){if(e&&typeof e==`object`&&`dbosErrorCode`in e){let code=e.dbosErrorCode;return typeof code==`number`?code:void 0}}exports.getDBOSErrorCode=getDBOSErrorCode})),require_utils$3=__commonJSMin((exports=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getClientConfig=exports.interceptStreams=exports.exhaustiveCheckGuard=exports.serializeFunctionInputOutput=exports.DBOSJSON=exports.SERIALIZER_MARKER_VALUE=exports.SERIALIZER_MARKER_KEY=exports.DBOSJSONLegacy=exports.DBOSReviver=exports.DBOSReplacer=exports.cancellableSleep=exports.DEBOUNCER_WORKLOW_NAME=exports.INTERNAL_QUEUE_NAME=exports.sleepms=exports.globalParams=exports.defaultEnableOTLP=exports.readFile=exports.registerSerializationRecipe=void 0;let node_fs_1=__importDefault(__require(`node:fs`)),node_path_1=__importDefault(__require(`node:path`)),superjson_1=__importDefault(__require(`superjson`));function registerSerializationRecipe(r){superjson_1.default.registerCustom(r,r.name)}exports.registerSerializationRecipe=registerSerializationRecipe,registerSerializationRecipe({isApplicable:v=>Buffer.isBuffer(v),serialize:v=>Array.from(v),deserialize:v=>Buffer.from(v),name:`Buffer`});async function readFile(path$2,encoding=`utf8`){return await node_fs_1.default.promises.readFile(path$2,{encoding})}exports.readFile=readFile;function loadDbosVersion(){try{function findPackageRoot(start){if(typeof start==`string`&&(start.endsWith(node_path_1.default.sep)||(start+=node_path_1.default.sep),start=start.split(node_path_1.default.sep)),start.length===0)throw Error(`package.json not found in path`);start.pop();let dir=start.join(node_path_1.default.sep);return node_fs_1.default.existsSync(node_path_1.default.join(dir,`package.json`))?dir:findPackageRoot(start)}return __require(node_path_1.default.join(findPackageRoot(__dirname),`package.json`)).version}catch{return`unknown`}}function defaultEnableOTLP(){return process.env.DBOS__CLOUD===`true`}exports.defaultEnableOTLP=defaultEnableOTLP,exports.globalParams={appVersion:process.env.DBOS__APPVERSION||``,wasComputed:!1,executorID:process.env.DBOS__VMID||`local`,appID:process.env.DBOS__APPID||``,enableOTLP:defaultEnableOTLP(),dbosVersion:loadDbosVersion()},exports.sleepms=ms=>new Promise(r=>setTimeout(r,ms)),exports.INTERNAL_QUEUE_NAME=`_dbos_internal_queue`,exports.DEBOUNCER_WORKLOW_NAME=`_dbos_debouncer_workflow`;function cancellableSleep(ms){let timeoutId,resolvePromise,resolved=!1;return{promise:new Promise(resolve$1=>{resolvePromise=()=>{resolved||(resolved=!0,resolve$1(),timeoutId=void 0)},timeoutId=setTimeout(resolvePromise,ms)}),cancel:()=>{timeoutId&&(clearTimeout(timeoutId),timeoutId=void 0,resolvePromise())}}}exports.cancellableSleep=cancellableSleep;function DBOSReplacer(key,value){let actualValue=this[key];return actualValue instanceof Date?{dbos_type:`dbos_Date`,dbos_data:actualValue.toISOString()}:typeof actualValue==`bigint`?{dbos_type:`dbos_BigInt`,dbos_data:actualValue.toString()}:value}exports.DBOSReplacer=DBOSReplacer;function isSerializedBuffer(value){return typeof value==`object`&&!!value&&value.type===`Buffer`}function isSerializedDate(value){return typeof value==`object`&&!!value&&value.dbos_type===`dbos_Date`}function isSerializedBigInt(value){return typeof value==`object`&&!!value&&value.dbos_type===`dbos_BigInt`}function DBOSReviver(_key,value){switch(!0){case isSerializedBuffer(value):return Buffer.from(value.data);case isSerializedDate(value):return new Date(Date.parse(value.dbos_data));case isSerializedBigInt(value):return BigInt(value.dbos_data);default:return value}}exports.DBOSReviver=DBOSReviver,exports.DBOSJSONLegacy={parse:text=>text===null?null:JSON.parse(text,DBOSReviver),stringify:value=>JSON.stringify(value,DBOSReplacer)},exports.SERIALIZER_MARKER_KEY=`__dbos_serializer`,exports.SERIALIZER_MARKER_VALUE=`superjson`;let SERIALIZER_MARKER_STRING=`"${exports.SERIALIZER_MARKER_KEY}":"${exports.SERIALIZER_MARKER_VALUE}"`;function isDBOSBrandedSuperjsonRecord(obj){return typeof obj==`object`&&!!obj&&exports.SERIALIZER_MARKER_KEY in obj&&obj[exports.SERIALIZER_MARKER_KEY]===exports.SERIALIZER_MARKER_VALUE&&`json`in obj}function sjstringify(value){let serialized=superjson_1.default.serialize(value);return JSON.stringify({...serialized,[exports.SERIALIZER_MARKER_KEY]:exports.SERIALIZER_MARKER_VALUE})}exports.DBOSJSON={parse:text=>{if(text==null)return null;if(text.includes(SERIALIZER_MARKER_STRING)){let vanillaParsed=JSON.parse(text);if(isDBOSBrandedSuperjsonRecord(vanillaParsed))return superjson_1.default.deserialize(vanillaParsed)}return exports.DBOSJSONLegacy.parse(text)},stringify:sjstringify};function serializeFunctionInputOutput(value,path$2=[]){let stringified=exports.DBOSJSON.stringify(value),deserialized=exports.DBOSJSON.parse(stringified);return isObjectish(deserialized)&&attachFunctionStubs(value,deserialized,path$2),{deserialized,stringified}}exports.serializeFunctionInputOutput=serializeFunctionInputOutput;function attachFunctionStubs(original,deserialized,path$2=[]){let seen=new WeakSet,pairQueue=[{o:original,d:deserialized,p:path$2}];for(;pairQueue.length;){let{o,d,p:p$1}=pairQueue.pop();if(!seen.has(o)){seen.add(o);for(let key of collectFunctionKeys(o))key in d||defineThrowingStub(d,key,p$1);for(let key of getAllKeys(o))try{let childO=o[key],childD=d[key];if(!shouldRecurse(childO,childD))continue;pairQueue.push({o:childO,d:childD,p:[...p$1,key]})}catch{}if(o instanceof Map&&d instanceof Map)for(let[k,vO]of o){let vD=d.get(k);if(shouldRecurse(vO,vD)){let step=isIndexableKey(k)?String(k):`[MapValue]`;pairQueue.push({o:vO,d:vD,p:[...p$1,step]})}}if(o instanceof Set&&d instanceof Set){let arrO=Array.from(o),arrD=Array.from(d);for(let i=0;i<Math.min(arrO.length,arrD.length);i++){let vO=arrO[i],vD=arrD[i];shouldRecurse(vO,vD)&&pairQueue.push({o:vO,d:vD,p:[...p$1,i]})}}}}}function isObjectish(v){return typeof v==`object`&&!!v||typeof v==`function`}function defineThrowingStub(target,key,path$2){let stub=function(..._args){throw Error(`Attempted to call '${String(key)}' at path ${formatPath(path$2)} on an object that is a serialized function input our output value. Functions are not preserved through serialization; see 'DBOS.registerSerialization'. `)};try{Object.defineProperty(target,key,{value:stub,configurable:!0,writable:!1,enumerable:!1})}catch{target[key]=stub}}function shouldRecurse(a,b){return!(!a||!b||typeof a!=`object`||typeof b!=`object`||[Date,RegExp,WeakMap,WeakSet,ArrayBuffer,DataView].some(t=>a instanceof t))}function getAllKeys(obj){let names=Object.getOwnPropertyNames(obj),syms=Object.getOwnPropertySymbols(obj);return[...names,...syms]}function collectFunctionKeys(obj){let keys=new Set;for(let k of getAllKeys(obj)){let d=Object.getOwnPropertyDescriptor(obj,k);d&&`value`in d&&typeof d.value==`function`&&keys.add(k)}let proto=Object.getPrototypeOf(obj);for(;proto&&proto!==Object.prototype;){for(let k of Object.getOwnPropertyNames(proto)){if(k===`constructor`)continue;let d=Object.getOwnPropertyDescriptor(proto,k);d&&`value`in d&&typeof d.value==`function`&&keys.add(k)}proto=Object.getPrototypeOf(proto)}return Array.from(keys)}function formatPath(path$2){return path$2.length===0?`(root)`:path$2.map(seg=>typeof seg==`number`?`[${seg}]`:typeof seg==`symbol`?`[${String(seg)}]`:/^<?[A-Za-z_$][A-Za-z0-9_$]*>?$/.test(seg)?`.${seg}`:`[${JSON.stringify(seg)}]`).join(``).replace(/^\./,``)}function isIndexableKey(k){return typeof k==`string`||typeof k==`number`}function exhaustiveCheckGuard(_){throw Error(`Exaustive matching is not applied`)}exports.exhaustiveCheckGuard=exhaustiveCheckGuard;let originalStdoutWrite=process.stdout.write.bind(process.stdout),originalStderrWrite=process.stderr.write.bind(process.stderr);function interceptStreams(onMessage){let intercept=(stream,originalWrite)=>(chunk,encodingOrCb,cb)=>(onMessage(chunk.toString(),stream),typeof encodingOrCb==`function`?originalWrite(chunk,encodingOrCb):originalWrite(chunk,encodingOrCb,cb));process.stdout.write=intercept(`stdout`,originalStdoutWrite),process.stderr.write=intercept(`stderr`,originalStderrWrite)}exports.interceptStreams=interceptStreams;function getClientConfig(databaseUrl){let connectionString=typeof databaseUrl==`string`?databaseUrl:databaseUrl.toString(),timeout=getTimeout(typeof databaseUrl==`string`?new URL(databaseUrl):databaseUrl);return{connectionString,connectionTimeoutMillis:timeout?timeout*1e3:1e4};function getTimeout(url$1){try{let $timeout=url$1.searchParams.get(`connect_timeout`);return $timeout?Number.parseInt($timeout,10):void 0}catch{return}}}exports.getClientConfig=getClientConfig})),require_context=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.runInStepContext=exports.runWithDataSourceContext=exports.runWithParentContext=exports.runWithTopContext=exports.functionIDGetIncrement=exports.getNextWFID=exports.getCurrentContextStore=exports.isInWorkflowCtx=void 0;let async_hooks_1$1=__require(`async_hooks`),error_1=require_error(),dbos_executor_1=require_dbos_executor();function isWithinWorkflowCtx(ctx){return ctx.workflowId!==void 0}function isInStepCtx(ctx){return ctx.workflowId===void 0?!1:!!ctx.curStepFunctionId}function isInTxnCtx(ctx){return ctx.workflowId===void 0?!1:!!ctx.curTxFunctionId}function isInWorkflowCtx(ctx){return!(!isWithinWorkflowCtx(ctx)||isInStepCtx(ctx)||isInTxnCtx(ctx))}exports.isInWorkflowCtx=isInWorkflowCtx;let asyncLocalCtx=new async_hooks_1$1.AsyncLocalStorage;function getCurrentContextStore(){return asyncLocalCtx.getStore()}exports.getCurrentContextStore=getCurrentContextStore;function getNextWFID(assignedID){let wfId=assignedID;if(!wfId){let pctx=getCurrentContextStore(),nextID=pctx?.idAssignedForNextWorkflow;nextID&&(wfId=nextID,pctx.idAssignedForNextWorkflow=void 0)}return wfId}exports.getNextWFID=getNextWFID;function functionIDGetIncrement(){let pctx=getCurrentContextStore();if(!pctx)throw new error_1.DBOSInvalidWorkflowTransitionError(`Attempt to get a call ID number outside of a workflow`);if(!isInWorkflowCtx(pctx))throw new error_1.DBOSInvalidWorkflowTransitionError(`Attempt to get a call ID number in a workflow that is already in a call`);return pctx.curWFFunctionId===void 0&&(pctx.curWFFunctionId=0),pctx.curWFFunctionId++}exports.functionIDGetIncrement=functionIDGetIncrement;async function runWithTopContext(ctx,callback){return await asyncLocalCtx.run(ctx,callback)}exports.runWithTopContext=runWithTopContext;async function runWithParentContext(pctx,ctx,callback){return await asyncLocalCtx.run({...pctx,...ctx,parentCtx:pctx},callback)}exports.runWithParentContext=runWithParentContext;async function runWithDataSourceContext(callnum,callback){let pctx=getCurrentContextStore()??{};return await asyncLocalCtx.run({...pctx,curTxFunctionId:callnum,parentCtx:pctx,logger:dbos_executor_1.DBOSExecutor.globalInstance.ctxLogger},callback)}exports.runWithDataSourceContext=runWithDataSourceContext;async function runInStepContext(pctx,stepID,maxAttempts,currentAttempt,callback){if(!pctx||!isInWorkflowCtx(pctx))throw new error_1.DBOSInvalidWorkflowTransitionError;return await runWithParentContext(pctx,{stepStatus:{stepID,currentAttempt,maxAttempts:currentAttempt?maxAttempts:void 0},curStepFunctionId:stepID,parentCtx:pctx,logger:dbos_executor_1.DBOSExecutor.globalInstance.ctxLogger},callback)}exports.runInStepContext=runInStepContext})),require_AbstractAsyncHooksContextManager=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AbstractAsyncHooksContextManager=void 0;let events_1=__require(`events`),ADD_LISTENER_METHODS=[`addListener`,`on`,`once`,`prependListener`,`prependOnceListener`];exports.AbstractAsyncHooksContextManager=class{bind(context$1,target){return target instanceof events_1.EventEmitter?this._bindEventEmitter(context$1,target):typeof target==`function`?this._bindFunction(context$1,target):target}_bindFunction(context$1,target){let manager=this,contextWrapper=function(...args){return manager.with(context$1,()=>target.apply(this,args))};return Object.defineProperty(contextWrapper,`length`,{enumerable:!1,configurable:!0,writable:!1,value:target.length}),contextWrapper}_bindEventEmitter(context$1,ee){return this._getPatchMap(ee)===void 0?(this._createPatchMap(ee),ADD_LISTENER_METHODS.forEach(methodName=>{ee[methodName]!==void 0&&(ee[methodName]=this._patchAddListener(ee,ee[methodName],context$1))}),typeof ee.removeListener==`function`&&(ee.removeListener=this._patchRemoveListener(ee,ee.removeListener)),typeof ee.off==`function`&&(ee.off=this._patchRemoveListener(ee,ee.off)),typeof ee.removeAllListeners==`function`&&(ee.removeAllListeners=this._patchRemoveAllListeners(ee,ee.removeAllListeners)),ee):ee}_patchRemoveListener(ee,original){let contextManager=this;return function(event,listener){let events=contextManager._getPatchMap(ee)?.[event];if(events===void 0)return original.call(this,event,listener);let patchedListener=events.get(listener);return original.call(this,event,patchedListener||listener)}}_patchRemoveAllListeners(ee,original){let contextManager=this;return function(event){let map=contextManager._getPatchMap(ee);return map!==void 0&&(arguments.length===0?contextManager._createPatchMap(ee):map[event]!==void 0&&delete map[event]),original.apply(this,arguments)}}_patchAddListener(ee,original,context$1){let contextManager=this;return function(event,listener){if(contextManager._wrapped)return original.call(this,event,listener);let map=contextManager._getPatchMap(ee);map===void 0&&(map=contextManager._createPatchMap(ee));let listeners=map[event];listeners===void 0&&(listeners=new WeakMap,map[event]=listeners);let patchedListener=contextManager.bind(context$1,listener);listeners.set(listener,patchedListener),contextManager._wrapped=!0;try{return original.call(this,event,patchedListener)}finally{contextManager._wrapped=!1}}}_createPatchMap(ee){let map=Object.create(null);return ee[this._kOtListeners]=map,map}_getPatchMap(ee){return ee[this._kOtListeners]}_kOtListeners=Symbol(`OtListeners`);_wrapped=!1}})),require_AsyncHooksContextManager=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AsyncHooksContextManager=void 0;let api_1$26=__require(`@opentelemetry/api`),asyncHooks=__require(`async_hooks`),AbstractAsyncHooksContextManager_1=require_AbstractAsyncHooksContextManager();exports.AsyncHooksContextManager=class extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=asyncHooks.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??api_1$26.ROOT_CONTEXT}with(context$1,fn,thisArg,...args){this._enterContext(context$1);try{return fn.call(thisArg,...args)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(uid,type){if(type===`TIMERWRAP`)return;let context$1=this._stack[this._stack.length-1];context$1!==void 0&&this._contexts.set(uid,context$1)}_destroy(uid){this._contexts.delete(uid)}_before(uid){let context$1=this._contexts.get(uid);context$1!==void 0&&this._enterContext(context$1)}_after(){this._exitContext()}_enterContext(context$1){this._stack.push(context$1)}_exitContext(){this._stack.pop()}}})),require_AsyncLocalStorageContextManager=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AsyncLocalStorageContextManager=void 0;let api_1$25=__require(`@opentelemetry/api`),async_hooks_1=__require(`async_hooks`),AbstractAsyncHooksContextManager_1=require_AbstractAsyncHooksContextManager();exports.AsyncLocalStorageContextManager=class extends AbstractAsyncHooksContextManager_1.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new async_hooks_1.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??api_1$25.ROOT_CONTEXT}with(context$1,fn,thisArg,...args){let cb=thisArg==null?fn:fn.bind(thisArg);return this._asyncLocalStorage.run(context$1,cb,...args)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}}})),require_src$9=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AsyncLocalStorageContextManager=exports.AsyncHooksContextManager=void 0;var AsyncHooksContextManager_1=require_AsyncHooksContextManager();Object.defineProperty(exports,`AsyncHooksContextManager`,{enumerable:!0,get:function(){return AsyncHooksContextManager_1.AsyncHooksContextManager}});var AsyncLocalStorageContextManager_1=require_AsyncLocalStorageContextManager();Object.defineProperty(exports,`AsyncLocalStorageContextManager`,{enumerable:!0,get:function(){return AsyncLocalStorageContextManager_1.AsyncLocalStorageContextManager}})})),require_suppress_tracing=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isTracingSuppressed=exports.unsuppressTracing=exports.suppressTracing=void 0;let SUPPRESS_TRACING_KEY=(0,__require(`@opentelemetry/api`).createContextKey)(`OpenTelemetry SDK Context Key SUPPRESS_TRACING`);function suppressTracing(context$1){return context$1.setValue(SUPPRESS_TRACING_KEY,!0)}exports.suppressTracing=suppressTracing;function unsuppressTracing(context$1){return context$1.deleteValue(SUPPRESS_TRACING_KEY)}exports.unsuppressTracing=unsuppressTracing;function isTracingSuppressed(context$1){return context$1.getValue(SUPPRESS_TRACING_KEY)===!0}exports.isTracingSuppressed=isTracingSuppressed})),require_constants$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BAGGAGE_MAX_TOTAL_LENGTH=exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=exports.BAGGAGE_MAX_NAME_VALUE_PAIRS=exports.BAGGAGE_HEADER=exports.BAGGAGE_ITEMS_SEPARATOR=exports.BAGGAGE_PROPERTIES_SEPARATOR=exports.BAGGAGE_KEY_PAIR_SEPARATOR=void 0,exports.BAGGAGE_KEY_PAIR_SEPARATOR=`=`,exports.BAGGAGE_PROPERTIES_SEPARATOR=`;`,exports.BAGGAGE_ITEMS_SEPARATOR=`,`,exports.BAGGAGE_HEADER=`baggage`,exports.BAGGAGE_MAX_NAME_VALUE_PAIRS=180,exports.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096,exports.BAGGAGE_MAX_TOTAL_LENGTH=8192})),require_utils$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.parseKeyPairsIntoRecord=exports.parsePairKeyValue=exports.getKeyPairs=exports.serializeKeyPairs=void 0;let api_1$24=__require(`@opentelemetry/api`),constants_1=require_constants$1();function serializeKeyPairs(keyPairs){return keyPairs.reduce((hValue,current)=>{let value=`${hValue}${hValue===``?``:constants_1.BAGGAGE_ITEMS_SEPARATOR}${current}`;return value.length>constants_1.BAGGAGE_MAX_TOTAL_LENGTH?hValue:value},``)}exports.serializeKeyPairs=serializeKeyPairs;function getKeyPairs(baggage){return baggage.getAllEntries().map(([key,value])=>{let entry=`${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;return value.metadata!==void 0&&(entry+=constants_1.BAGGAGE_PROPERTIES_SEPARATOR+value.metadata.toString()),entry})}exports.getKeyPairs=getKeyPairs;function parsePairKeyValue(entry){let valueProps=entry.split(constants_1.BAGGAGE_PROPERTIES_SEPARATOR);if(valueProps.length<=0)return;let keyPairPart=valueProps.shift();if(!keyPairPart)return;let separatorIndex=keyPairPart.indexOf(constants_1.BAGGAGE_KEY_PAIR_SEPARATOR);if(separatorIndex<=0)return;let key=decodeURIComponent(keyPairPart.substring(0,separatorIndex).trim()),value=decodeURIComponent(keyPairPart.substring(separatorIndex+1).trim()),metadata;return valueProps.length>0&&(metadata=(0,api_1$24.baggageEntryMetadataFromString)(valueProps.join(constants_1.BAGGAGE_PROPERTIES_SEPARATOR))),{key,value,metadata}}exports.parsePairKeyValue=parsePairKeyValue;function parseKeyPairsIntoRecord(value){let result={};return typeof value==`string`&&value.length>0&&value.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry=>{let keyPair=parsePairKeyValue(entry);keyPair!==void 0&&keyPair.value.length>0&&(result[keyPair.key]=keyPair.value)}),result}exports.parseKeyPairsIntoRecord=parseKeyPairsIntoRecord})),require_W3CBaggagePropagator=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.W3CBaggagePropagator=void 0;let api_1$23=__require(`@opentelemetry/api`),suppress_tracing_1=require_suppress_tracing(),constants_1=require_constants$1(),utils_1=require_utils$2();exports.W3CBaggagePropagator=class{inject(context$1,carrier,setter){let baggage=api_1$23.propagation.getBaggage(context$1);if(!baggage||(0,suppress_tracing_1.isTracingSuppressed)(context$1))return;let keyPairs=(0,utils_1.getKeyPairs)(baggage).filter(pair=>pair.length<=constants_1.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,constants_1.BAGGAGE_MAX_NAME_VALUE_PAIRS),headerValue=(0,utils_1.serializeKeyPairs)(keyPairs);headerValue.length>0&&setter.set(carrier,constants_1.BAGGAGE_HEADER,headerValue)}extract(context$1,carrier,getter){let headerValue=getter.get(carrier,constants_1.BAGGAGE_HEADER),baggageString=Array.isArray(headerValue)?headerValue.join(constants_1.BAGGAGE_ITEMS_SEPARATOR):headerValue;if(!baggageString)return context$1;let baggage={};return baggageString.length===0||(baggageString.split(constants_1.BAGGAGE_ITEMS_SEPARATOR).forEach(entry=>{let keyPair=(0,utils_1.parsePairKeyValue)(entry);if(keyPair){let baggageEntry={value:keyPair.value};keyPair.metadata&&(baggageEntry.metadata=keyPair.metadata),baggage[keyPair.key]=baggageEntry}}),Object.entries(baggage).length===0)?context$1:api_1$23.propagation.setBaggage(context$1,api_1$23.propagation.createBaggage(baggage))}fields(){return[constants_1.BAGGAGE_HEADER]}}})),require_anchored_clock=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AnchoredClock=void 0,exports.AnchoredClock=class{_monotonicClock;_epochMillis;_performanceMillis;constructor(systemClock,monotonicClock){this._monotonicClock=monotonicClock,this._epochMillis=systemClock.now(),this._performanceMillis=monotonicClock.now()}now(){let delta=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+delta}}})),require_attributes=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isAttributeValue=exports.isAttributeKey=exports.sanitizeAttributes=void 0;let api_1$22=__require(`@opentelemetry/api`);function sanitizeAttributes(attributes){let out={};if(typeof attributes!=`object`||!attributes)return out;for(let key in attributes){if(!Object.prototype.hasOwnProperty.call(attributes,key))continue;if(!isAttributeKey(key)){api_1$22.diag.warn(`Invalid attribute key: ${key}`);continue}let val=attributes[key];if(!isAttributeValue(val)){api_1$22.diag.warn(`Invalid attribute value set for key: ${key}`);continue}Array.isArray(val)?out[key]=val.slice():out[key]=val}return out}exports.sanitizeAttributes=sanitizeAttributes;function isAttributeKey(key){return typeof key==`string`&&key!==``}exports.isAttributeKey=isAttributeKey;function isAttributeValue(val){return val==null?!0:Array.isArray(val)?isHomogeneousAttributeValueArray(val):isValidPrimitiveAttributeValueType(typeof val)}exports.isAttributeValue=isAttributeValue;function isHomogeneousAttributeValueArray(arr){let type;for(let element of arr){if(element==null)continue;let elementType=typeof element;if(elementType!==type){if(!type){if(isValidPrimitiveAttributeValueType(elementType)){type=elementType;continue}return!1}return!1}}return!0}function isValidPrimitiveAttributeValueType(valType){switch(valType){case`number`:case`boolean`:case`string`:return!0}return!1}})),require_logging_error_handler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.loggingErrorHandler=void 0;let api_1$21=__require(`@opentelemetry/api`);function loggingErrorHandler(){return ex=>{api_1$21.diag.error(stringifyException(ex))}}exports.loggingErrorHandler=loggingErrorHandler;function stringifyException(ex){return typeof ex==`string`?ex:JSON.stringify(flattenException(ex))}function flattenException(ex){let result={},current=ex;for(;current!==null;)Object.getOwnPropertyNames(current).forEach(propertyName=>{if(result[propertyName])return;let value=current[propertyName];value&&(result[propertyName]=String(value))}),current=Object.getPrototypeOf(current);return result}})),require_global_error_handler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.globalErrorHandler=exports.setGlobalErrorHandler=void 0;let delegateHandler=(0,require_logging_error_handler().loggingErrorHandler)();function setGlobalErrorHandler(handler){delegateHandler=handler}exports.setGlobalErrorHandler=setGlobalErrorHandler;function globalErrorHandler(ex){try{delegateHandler(ex)}catch{}}exports.globalErrorHandler=globalErrorHandler})),require_environment=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getStringListFromEnv=exports.getBooleanFromEnv=exports.getStringFromEnv=exports.getNumberFromEnv=void 0;let api_1$20=__require(`@opentelemetry/api`),util_1=__require(`util`);function getNumberFromEnv(key){let raw=process.env[key];if(raw==null||raw.trim()===``)return;let value=Number(raw);if(isNaN(value)){api_1$20.diag.warn(`Unknown value ${(0,util_1.inspect)(raw)} for ${key}, expected a number, using defaults`);return}return value}exports.getNumberFromEnv=getNumberFromEnv;function getStringFromEnv(key){let raw=process.env[key];if(!(raw==null||raw.trim()===``))return raw}exports.getStringFromEnv=getStringFromEnv;function getBooleanFromEnv(key){let raw=process.env[key]?.trim().toLowerCase();return raw==null||raw===``?!1:raw===`true`?!0:(raw===`false`||api_1$20.diag.warn(`Unknown value ${(0,util_1.inspect)(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}exports.getBooleanFromEnv=getBooleanFromEnv;function getStringListFromEnv(key){return getStringFromEnv(key)?.split(`,`).map(v=>v.trim()).filter(s=>s!==``)}exports.getStringListFromEnv=getStringListFromEnv})),require_globalThis$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0,exports._globalThis=typeof globalThis==`object`?globalThis:global})),require_performance=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.otperformance=void 0,exports.otperformance=__require(`perf_hooks`).performance})),require_version=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.VERSION=void 0,exports.VERSION=`2.2.0`})),require_semconv=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ATTR_PROCESS_RUNTIME_NAME=void 0,exports.ATTR_PROCESS_RUNTIME_NAME=`process.runtime.name`})),require_sdk_info=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SDK_INFO=void 0;let version_1=require_version(),semantic_conventions_1$1=__require(`@opentelemetry/semantic-conventions`),semconv_1=require_semconv();exports.SDK_INFO={[semantic_conventions_1$1.ATTR_TELEMETRY_SDK_NAME]:`opentelemetry`,[semconv_1.ATTR_PROCESS_RUNTIME_NAME]:`node`,[semantic_conventions_1$1.ATTR_TELEMETRY_SDK_LANGUAGE]:semantic_conventions_1$1.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[semantic_conventions_1$1.ATTR_TELEMETRY_SDK_VERSION]:version_1.VERSION}})),require_node$5=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SDK_INFO=exports.otperformance=exports._globalThis=exports.getStringListFromEnv=exports.getNumberFromEnv=exports.getBooleanFromEnv=exports.getStringFromEnv=void 0;var environment_1=require_environment();Object.defineProperty(exports,`getStringFromEnv`,{enumerable:!0,get:function(){return environment_1.getStringFromEnv}}),Object.defineProperty(exports,`getBooleanFromEnv`,{enumerable:!0,get:function(){return environment_1.getBooleanFromEnv}}),Object.defineProperty(exports,`getNumberFromEnv`,{enumerable:!0,get:function(){return environment_1.getNumberFromEnv}}),Object.defineProperty(exports,`getStringListFromEnv`,{enumerable:!0,get:function(){return environment_1.getStringListFromEnv}});var globalThis_1=require_globalThis$1();Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return globalThis_1._globalThis}});var performance_1=require_performance();Object.defineProperty(exports,`otperformance`,{enumerable:!0,get:function(){return performance_1.otperformance}});var sdk_info_1=require_sdk_info();Object.defineProperty(exports,`SDK_INFO`,{enumerable:!0,get:function(){return sdk_info_1.SDK_INFO}})})),require_platform$5=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getStringListFromEnv=exports.getNumberFromEnv=exports.getStringFromEnv=exports.getBooleanFromEnv=exports.otperformance=exports._globalThis=exports.SDK_INFO=void 0;var node_1=require_node$5();Object.defineProperty(exports,`SDK_INFO`,{enumerable:!0,get:function(){return node_1.SDK_INFO}}),Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return node_1._globalThis}}),Object.defineProperty(exports,`otperformance`,{enumerable:!0,get:function(){return node_1.otperformance}}),Object.defineProperty(exports,`getBooleanFromEnv`,{enumerable:!0,get:function(){return node_1.getBooleanFromEnv}}),Object.defineProperty(exports,`getStringFromEnv`,{enumerable:!0,get:function(){return node_1.getStringFromEnv}}),Object.defineProperty(exports,`getNumberFromEnv`,{enumerable:!0,get:function(){return node_1.getNumberFromEnv}}),Object.defineProperty(exports,`getStringListFromEnv`,{enumerable:!0,get:function(){return node_1.getStringListFromEnv}})})),require_time=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.addHrTimes=exports.isTimeInput=exports.isTimeInputHrTime=exports.hrTimeToMicroseconds=exports.hrTimeToMilliseconds=exports.hrTimeToNanoseconds=exports.hrTimeToTimeStamp=exports.hrTimeDuration=exports.timeInputToHrTime=exports.hrTime=exports.getTimeOrigin=exports.millisToHrTime=void 0;let platform_1=require_platform$5(),NANOSECOND_DIGITS=9,MILLISECONDS_TO_NANOSECONDS=10**6,SECOND_TO_NANOSECONDS=10**9;function millisToHrTime(epochMillis){let epochSeconds=epochMillis/1e3;return[Math.trunc(epochSeconds),Math.round(epochMillis%1e3*MILLISECONDS_TO_NANOSECONDS)]}exports.millisToHrTime=millisToHrTime;function getTimeOrigin(){let timeOrigin=platform_1.otperformance.timeOrigin;if(typeof timeOrigin!=`number`){let perf=platform_1.otperformance;timeOrigin=perf.timing&&perf.timing.fetchStart}return timeOrigin}exports.getTimeOrigin=getTimeOrigin;function hrTime(performanceNow){return addHrTimes(millisToHrTime(getTimeOrigin()),millisToHrTime(typeof performanceNow==`number`?performanceNow:platform_1.otperformance.now()))}exports.hrTime=hrTime;function timeInputToHrTime(time){if(isTimeInputHrTime(time))return time;if(typeof time==`number`)return time<getTimeOrigin()?hrTime(time):millisToHrTime(time);if(time instanceof Date)return millisToHrTime(time.getTime());throw TypeError(`Invalid input type`)}exports.timeInputToHrTime=timeInputToHrTime;function hrTimeDuration(startTime,endTime){let seconds=endTime[0]-startTime[0],nanos=endTime[1]-startTime[1];return nanos<0&&(--seconds,nanos+=SECOND_TO_NANOSECONDS),[seconds,nanos]}exports.hrTimeDuration=hrTimeDuration;function hrTimeToTimeStamp(time){let precision=9,tmp=`${`0`.repeat(9)}${time[1]}Z`,nanoString=tmp.substring(tmp.length-9-1);return new Date(time[0]*1e3).toISOString().replace(`000Z`,nanoString)}exports.hrTimeToTimeStamp=hrTimeToTimeStamp;function hrTimeToNanoseconds(time){return time[0]*SECOND_TO_NANOSECONDS+time[1]}exports.hrTimeToNanoseconds=hrTimeToNanoseconds;function hrTimeToMilliseconds(time){return time[0]*1e3+time[1]/1e6}exports.hrTimeToMilliseconds=hrTimeToMilliseconds;function hrTimeToMicroseconds(time){return time[0]*1e6+time[1]/1e3}exports.hrTimeToMicroseconds=hrTimeToMicroseconds;function isTimeInputHrTime(value){return Array.isArray(value)&&value.length===2&&typeof value[0]==`number`&&typeof value[1]==`number`}exports.isTimeInputHrTime=isTimeInputHrTime;function isTimeInput(value){return isTimeInputHrTime(value)||typeof value==`number`||value instanceof Date}exports.isTimeInput=isTimeInput;function addHrTimes(time1,time2){let out=[time1[0]+time2[0],time1[1]+time2[1]];return out[1]>=SECOND_TO_NANOSECONDS&&(out[1]-=SECOND_TO_NANOSECONDS,out[0]+=1),out}exports.addHrTimes=addHrTimes})),require_timer_util=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.unrefTimer=void 0;function unrefTimer(timer){typeof timer!=`number`&&timer.unref()}exports.unrefTimer=unrefTimer})),require_ExportResult=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExportResultCode=void 0,(function(ExportResultCode$1){ExportResultCode$1[ExportResultCode$1.SUCCESS=0]=`SUCCESS`,ExportResultCode$1[ExportResultCode$1.FAILED=1]=`FAILED`})(exports.ExportResultCode||={})})),require_composite=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.CompositePropagator=void 0;let api_1$19=__require(`@opentelemetry/api`);exports.CompositePropagator=class{_propagators;_fields;constructor(config={}){this._propagators=config.propagators??[],this._fields=Array.from(new Set(this._propagators.map(p$1=>typeof p$1.fields==`function`?p$1.fields():[]).reduce((x,y)=>x.concat(y),[])))}inject(context$1,carrier,setter){for(let propagator of this._propagators)try{propagator.inject(context$1,carrier,setter)}catch(err){api_1$19.diag.warn(`Failed to inject with ${propagator.constructor.name}. Err: ${err.message}`)}}extract(context$1,carrier,getter){return this._propagators.reduce((ctx,propagator)=>{try{return propagator.extract(ctx,carrier,getter)}catch(err){api_1$19.diag.warn(`Failed to extract with ${propagator.constructor.name}. Err: ${err.message}`)}return ctx},context$1)}fields(){return this._fields.slice()}}})),require_validators=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.validateValue=exports.validateKey=void 0;let VALID_KEY_CHAR_RANGE=`[_0-9a-z-*/]`,VALID_KEY=`[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`,VALID_VENDOR_KEY=`[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`,VALID_KEY_REGEX=RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`),VALID_VALUE_BASE_REGEX=/^[ -~]{0,255}[!-~]$/,INVALID_VALUE_COMMA_EQUAL_REGEX=/,|=/;function validateKey(key){return VALID_KEY_REGEX.test(key)}exports.validateKey=validateKey;function validateValue(value){return VALID_VALUE_BASE_REGEX.test(value)&&!INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)}exports.validateValue=validateValue})),require_TraceState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TraceState=void 0;let validators_1=require_validators(),MAX_TRACE_STATE_ITEMS=32,MAX_TRACE_STATE_LEN=512,LIST_MEMBERS_SEPARATOR=`,`,LIST_MEMBER_KEY_VALUE_SPLITTER=`=`;exports.TraceState=class TraceState{_internalState=new Map;constructor(rawTraceState){rawTraceState&&this._parse(rawTraceState)}set(key,value){let traceState=this._clone();return traceState._internalState.has(key)&&traceState._internalState.delete(key),traceState._internalState.set(key,value),traceState}unset(key){let traceState=this._clone();return traceState._internalState.delete(key),traceState}get(key){return this._internalState.get(key)}serialize(){return this._keys().reduce((agg,key)=>(agg.push(key+`=`+this.get(key)),agg),[]).join(`,`)}_parse(rawTraceState){rawTraceState.length>512||(this._internalState=rawTraceState.split(`,`).reverse().reduce((agg,part)=>{let listMember=part.trim(),i=listMember.indexOf(`=`);if(i!==-1){let key=listMember.slice(0,i),value=listMember.slice(i+1,part.length);(0,validators_1.validateKey)(key)&&(0,validators_1.validateValue)(value)&&agg.set(key,value)}return agg},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let traceState=new TraceState;return traceState._internalState=new Map(this._internalState),traceState}}})),require_W3CTraceContextPropagator=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.W3CTraceContextPropagator=exports.parseTraceParent=exports.TRACE_STATE_HEADER=exports.TRACE_PARENT_HEADER=void 0;let api_1$18=__require(`@opentelemetry/api`),suppress_tracing_1=require_suppress_tracing(),TraceState_1=require_TraceState();exports.TRACE_PARENT_HEADER=`traceparent`,exports.TRACE_STATE_HEADER=`tracestate`;let VERSION=`00`,TRACE_PARENT_REGEX=RegExp(`^\\s?((?!ff)[\\da-f]{2})-((?![0]{32})[\\da-f]{32})-((?![0]{16})[\\da-f]{16})-([\\da-f]{2})(-.*)?\\s?$`);function parseTraceParent(traceParent){let match=TRACE_PARENT_REGEX.exec(traceParent);return!match||match[1]===`00`&&match[5]?null:{traceId:match[2],spanId:match[3],traceFlags:parseInt(match[4],16)}}exports.parseTraceParent=parseTraceParent,exports.W3CTraceContextPropagator=class{inject(context$1,carrier,setter){let spanContext=api_1$18.trace.getSpanContext(context$1);if(!spanContext||(0,suppress_tracing_1.isTracingSuppressed)(context$1)||!(0,api_1$18.isSpanContextValid)(spanContext))return;let traceParent=`00-${spanContext.traceId}-${spanContext.spanId}-0${Number(spanContext.traceFlags||api_1$18.TraceFlags.NONE).toString(16)}`;setter.set(carrier,exports.TRACE_PARENT_HEADER,traceParent),spanContext.traceState&&setter.set(carrier,exports.TRACE_STATE_HEADER,spanContext.traceState.serialize())}extract(context$1,carrier,getter){let traceParentHeader=getter.get(carrier,exports.TRACE_PARENT_HEADER);if(!traceParentHeader)return context$1;let traceParent=Array.isArray(traceParentHeader)?traceParentHeader[0]:traceParentHeader;if(typeof traceParent!=`string`)return context$1;let spanContext=parseTraceParent(traceParent);if(!spanContext)return context$1;spanContext.isRemote=!0;let traceStateHeader=getter.get(carrier,exports.TRACE_STATE_HEADER);if(traceStateHeader){let state=Array.isArray(traceStateHeader)?traceStateHeader.join(`,`):traceStateHeader;spanContext.traceState=new TraceState_1.TraceState(typeof state==`string`?state:void 0)}return api_1$18.trace.setSpanContext(context$1,spanContext)}fields(){return[exports.TRACE_PARENT_HEADER,exports.TRACE_STATE_HEADER]}}})),require_rpc_metadata=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getRPCMetadata=exports.deleteRPCMetadata=exports.setRPCMetadata=exports.RPCType=void 0;let RPC_METADATA_KEY=(0,__require(`@opentelemetry/api`).createContextKey)(`OpenTelemetry SDK Context Key RPC_METADATA`);(function(RPCType){RPCType.HTTP=`http`})(exports.RPCType||={});function setRPCMetadata(context$1,meta){return context$1.setValue(RPC_METADATA_KEY,meta)}exports.setRPCMetadata=setRPCMetadata;function deleteRPCMetadata(context$1){return context$1.deleteValue(RPC_METADATA_KEY)}exports.deleteRPCMetadata=deleteRPCMetadata;function getRPCMetadata(context$1){return context$1.getValue(RPC_METADATA_KEY)}exports.getRPCMetadata=getRPCMetadata})),require_lodash_merge=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isPlainObject=void 0;let objectTag=`[object Object]`,nullTag=`[object Null]`,undefinedTag=`[object Undefined]`,funcToString=Function.prototype.toString,objectCtorString=funcToString.call(Object),getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,symToStringTag=Symbol?Symbol.toStringTag:void 0,nativeObjectToString=objectProto.toString;function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!==`[object Object]`)return!1;let proto=getPrototypeOf(value);if(proto===null)return!0;let Ctor=hasOwnProperty.call(proto,`constructor`)&&proto.constructor;return typeof Ctor==`function`&&Ctor instanceof Ctor&&funcToString.call(Ctor)===objectCtorString}exports.isPlainObject=isPlainObject;function isObjectLike(value){return typeof value==`object`&&!!value}function baseGetTag(value){return value==null?value===void 0?`[object Undefined]`:`[object Null]`:symToStringTag&&symToStringTag in Object(value)?getRawTag(value):objectToString(value)}function getRawTag(value){let isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag],unmasked=!1;try{value[symToStringTag]=void 0,unmasked=!0}catch{}let result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}function objectToString(value){return nativeObjectToString.call(value)}})),require_merge=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.merge=void 0;let lodash_merge_1=require_lodash_merge(),MAX_LEVEL=20;function merge(...args){let result=args.shift(),objects=new WeakMap;for(;args.length>0;)result=mergeTwoObjects(result,args.shift(),0,objects);return result}exports.merge=merge;function takeValue(value){return isArray(value)?value.slice():value}function mergeTwoObjects(one,two,level=0,objects){let result;if(!(level>20)){if(level++,isPrimitive(one)||isPrimitive(two)||isFunction(two))result=takeValue(two);else if(isArray(one)){if(result=one.slice(),isArray(two))for(let i=0,j=two.length;i<j;i++)result.push(takeValue(two[i]));else if(isObject(two)){let keys=Object.keys(two);for(let i=0,j=keys.length;i<j;i++){let key=keys[i];result[key]=takeValue(two[key])}}}else if(isObject(one))if(isObject(two)){if(!shouldMerge(one,two))return two;result=Object.assign({},one);let keys=Object.keys(two);for(let i=0,j=keys.length;i<j;i++){let key=keys[i],twoValue=two[key];if(isPrimitive(twoValue))twoValue===void 0?delete result[key]:result[key]=twoValue;else{let obj1=result[key],obj2=twoValue;if(wasObjectReferenced(one,key,objects)||wasObjectReferenced(two,key,objects))delete result[key];else{if(isObject(obj1)&&isObject(obj2)){let arr1=objects.get(obj1)||[],arr2=objects.get(obj2)||[];arr1.push({obj:one,key}),arr2.push({obj:two,key}),objects.set(obj1,arr1),objects.set(obj2,arr2)}result[key]=mergeTwoObjects(result[key],twoValue,level,objects)}}}}else result=two;return result}}function wasObjectReferenced(obj,key,objects){let arr=objects.get(obj[key])||[];for(let i=0,j=arr.length;i<j;i++){let info=arr[i];if(info.key===key&&info.obj===obj)return!0}return!1}function isArray(value){return Array.isArray(value)}function isFunction(value){return typeof value==`function`}function isObject(value){return!isPrimitive(value)&&!isArray(value)&&!isFunction(value)&&typeof value==`object`}function isPrimitive(value){return typeof value==`string`||typeof value==`number`||typeof value==`boolean`||value===void 0||value instanceof Date||value instanceof RegExp||value===null}function shouldMerge(one,two){return!(!(0,lodash_merge_1.isPlainObject)(one)||!(0,lodash_merge_1.isPlainObject)(two))}})),require_timeout=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.callWithTimeout=exports.TimeoutError=void 0;var TimeoutError=class TimeoutError extends Error{constructor(message){super(message),Object.setPrototypeOf(this,TimeoutError.prototype)}};exports.TimeoutError=TimeoutError;function callWithTimeout(promise,timeout){let timeoutHandle,timeoutPromise=new Promise(function(_resolve,reject){timeoutHandle=setTimeout(function(){reject(new TimeoutError(`Operation timed out.`))},timeout)});return Promise.race([promise,timeoutPromise]).then(result=>(clearTimeout(timeoutHandle),result),reason=>{throw clearTimeout(timeoutHandle),reason})}exports.callWithTimeout=callWithTimeout})),require_url=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isUrlIgnored=exports.urlMatches=void 0;function urlMatches(url$1,urlToMatch){return typeof urlToMatch==`string`?url$1===urlToMatch:!!url$1.match(urlToMatch)}exports.urlMatches=urlMatches;function isUrlIgnored(url$1,ignoredUrls){if(!ignoredUrls)return!1;for(let ignoreUrl of ignoredUrls)if(urlMatches(url$1,ignoreUrl))return!0;return!1}exports.isUrlIgnored=isUrlIgnored})),require_promise=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Deferred=void 0,exports.Deferred=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((resolve$1,reject)=>{this._resolve=resolve$1,this._reject=reject})}get promise(){return this._promise}resolve(val){this._resolve(val)}reject(err){this._reject(err)}}})),require_callback=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BindOnceFuture=void 0;let promise_1=require_promise();exports.BindOnceFuture=class{_callback;_that;_isCalled=!1;_deferred=new promise_1.Deferred;constructor(_callback,_that){this._callback=_callback,this._that=_that}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...args){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...args)).then(val=>this._deferred.resolve(val),err=>this._deferred.reject(err))}catch(err){this._deferred.reject(err)}}return this._deferred.promise}}})),require_configuration=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.diagLogLevelFromString=void 0;let api_1$17=__require(`@opentelemetry/api`),logLevelMap={ALL:api_1$17.DiagLogLevel.ALL,VERBOSE:api_1$17.DiagLogLevel.VERBOSE,DEBUG:api_1$17.DiagLogLevel.DEBUG,INFO:api_1$17.DiagLogLevel.INFO,WARN:api_1$17.DiagLogLevel.WARN,ERROR:api_1$17.DiagLogLevel.ERROR,NONE:api_1$17.DiagLogLevel.NONE};function diagLogLevelFromString(value){return value==null?void 0:logLevelMap[value.toUpperCase()]??(api_1$17.diag.warn(`Unknown log level "${value}", expected one of ${Object.keys(logLevelMap)}, using default`),api_1$17.DiagLogLevel.INFO)}exports.diagLogLevelFromString=diagLogLevelFromString})),require_exporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._export=void 0;let api_1$16=__require(`@opentelemetry/api`),suppress_tracing_1=require_suppress_tracing();function _export(exporter,arg){return new Promise(resolve$1=>{api_1$16.context.with((0,suppress_tracing_1.suppressTracing)(api_1$16.context.active()),()=>{exporter.export(arg,result=>{resolve$1(result)})})})}exports._export=_export})),require_src$8=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.internal=exports.diagLogLevelFromString=exports.BindOnceFuture=exports.urlMatches=exports.isUrlIgnored=exports.callWithTimeout=exports.TimeoutError=exports.merge=exports.TraceState=exports.unsuppressTracing=exports.suppressTracing=exports.isTracingSuppressed=exports.setRPCMetadata=exports.getRPCMetadata=exports.deleteRPCMetadata=exports.RPCType=exports.parseTraceParent=exports.W3CTraceContextPropagator=exports.TRACE_STATE_HEADER=exports.TRACE_PARENT_HEADER=exports.CompositePropagator=exports.otperformance=exports.getStringListFromEnv=exports.getNumberFromEnv=exports.getBooleanFromEnv=exports.getStringFromEnv=exports._globalThis=exports.SDK_INFO=exports.parseKeyPairsIntoRecord=exports.ExportResultCode=exports.unrefTimer=exports.timeInputToHrTime=exports.millisToHrTime=exports.isTimeInputHrTime=exports.isTimeInput=exports.hrTimeToTimeStamp=exports.hrTimeToNanoseconds=exports.hrTimeToMilliseconds=exports.hrTimeToMicroseconds=exports.hrTimeDuration=exports.hrTime=exports.getTimeOrigin=exports.addHrTimes=exports.loggingErrorHandler=exports.setGlobalErrorHandler=exports.globalErrorHandler=exports.sanitizeAttributes=exports.isAttributeValue=exports.AnchoredClock=exports.W3CBaggagePropagator=void 0;var W3CBaggagePropagator_1=require_W3CBaggagePropagator();Object.defineProperty(exports,`W3CBaggagePropagator`,{enumerable:!0,get:function(){return W3CBaggagePropagator_1.W3CBaggagePropagator}});var anchored_clock_1=require_anchored_clock();Object.defineProperty(exports,`AnchoredClock`,{enumerable:!0,get:function(){return anchored_clock_1.AnchoredClock}});var attributes_1=require_attributes();Object.defineProperty(exports,`isAttributeValue`,{enumerable:!0,get:function(){return attributes_1.isAttributeValue}}),Object.defineProperty(exports,`sanitizeAttributes`,{enumerable:!0,get:function(){return attributes_1.sanitizeAttributes}});var global_error_handler_1=require_global_error_handler();Object.defineProperty(exports,`globalErrorHandler`,{enumerable:!0,get:function(){return global_error_handler_1.globalErrorHandler}}),Object.defineProperty(exports,`setGlobalErrorHandler`,{enumerable:!0,get:function(){return global_error_handler_1.setGlobalErrorHandler}});var logging_error_handler_1=require_logging_error_handler();Object.defineProperty(exports,`loggingErrorHandler`,{enumerable:!0,get:function(){return logging_error_handler_1.loggingErrorHandler}});var time_1=require_time();Object.defineProperty(exports,`addHrTimes`,{enumerable:!0,get:function(){return time_1.addHrTimes}}),Object.defineProperty(exports,`getTimeOrigin`,{enumerable:!0,get:function(){return time_1.getTimeOrigin}}),Object.defineProperty(exports,`hrTime`,{enumerable:!0,get:function(){return time_1.hrTime}}),Object.defineProperty(exports,`hrTimeDuration`,{enumerable:!0,get:function(){return time_1.hrTimeDuration}}),Object.defineProperty(exports,`hrTimeToMicroseconds`,{enumerable:!0,get:function(){return time_1.hrTimeToMicroseconds}}),Object.defineProperty(exports,`hrTimeToMilliseconds`,{enumerable:!0,get:function(){return time_1.hrTimeToMilliseconds}}),Object.defineProperty(exports,`hrTimeToNanoseconds`,{enumerable:!0,get:function(){return time_1.hrTimeToNanoseconds}}),Object.defineProperty(exports,`hrTimeToTimeStamp`,{enumerable:!0,get:function(){return time_1.hrTimeToTimeStamp}}),Object.defineProperty(exports,`isTimeInput`,{enumerable:!0,get:function(){return time_1.isTimeInput}}),Object.defineProperty(exports,`isTimeInputHrTime`,{enumerable:!0,get:function(){return time_1.isTimeInputHrTime}}),Object.defineProperty(exports,`millisToHrTime`,{enumerable:!0,get:function(){return time_1.millisToHrTime}}),Object.defineProperty(exports,`timeInputToHrTime`,{enumerable:!0,get:function(){return time_1.timeInputToHrTime}});var timer_util_1=require_timer_util();Object.defineProperty(exports,`unrefTimer`,{enumerable:!0,get:function(){return timer_util_1.unrefTimer}});var ExportResult_1=require_ExportResult();Object.defineProperty(exports,`ExportResultCode`,{enumerable:!0,get:function(){return ExportResult_1.ExportResultCode}});var utils_1=require_utils$2();Object.defineProperty(exports,`parseKeyPairsIntoRecord`,{enumerable:!0,get:function(){return utils_1.parseKeyPairsIntoRecord}});var platform_1=require_platform$5();Object.defineProperty(exports,`SDK_INFO`,{enumerable:!0,get:function(){return platform_1.SDK_INFO}}),Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return platform_1._globalThis}}),Object.defineProperty(exports,`getStringFromEnv`,{enumerable:!0,get:function(){return platform_1.getStringFromEnv}}),Object.defineProperty(exports,`getBooleanFromEnv`,{enumerable:!0,get:function(){return platform_1.getBooleanFromEnv}}),Object.defineProperty(exports,`getNumberFromEnv`,{enumerable:!0,get:function(){return platform_1.getNumberFromEnv}}),Object.defineProperty(exports,`getStringListFromEnv`,{enumerable:!0,get:function(){return platform_1.getStringListFromEnv}}),Object.defineProperty(exports,`otperformance`,{enumerable:!0,get:function(){return platform_1.otperformance}});var composite_1=require_composite();Object.defineProperty(exports,`CompositePropagator`,{enumerable:!0,get:function(){return composite_1.CompositePropagator}});var W3CTraceContextPropagator_1=require_W3CTraceContextPropagator();Object.defineProperty(exports,`TRACE_PARENT_HEADER`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.TRACE_PARENT_HEADER}}),Object.defineProperty(exports,`TRACE_STATE_HEADER`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.TRACE_STATE_HEADER}}),Object.defineProperty(exports,`W3CTraceContextPropagator`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.W3CTraceContextPropagator}}),Object.defineProperty(exports,`parseTraceParent`,{enumerable:!0,get:function(){return W3CTraceContextPropagator_1.parseTraceParent}});var rpc_metadata_1=require_rpc_metadata();Object.defineProperty(exports,`RPCType`,{enumerable:!0,get:function(){return rpc_metadata_1.RPCType}}),Object.defineProperty(exports,`deleteRPCMetadata`,{enumerable:!0,get:function(){return rpc_metadata_1.deleteRPCMetadata}}),Object.defineProperty(exports,`getRPCMetadata`,{enumerable:!0,get:function(){return rpc_metadata_1.getRPCMetadata}}),Object.defineProperty(exports,`setRPCMetadata`,{enumerable:!0,get:function(){return rpc_metadata_1.setRPCMetadata}});var suppress_tracing_1=require_suppress_tracing();Object.defineProperty(exports,`isTracingSuppressed`,{enumerable:!0,get:function(){return suppress_tracing_1.isTracingSuppressed}}),Object.defineProperty(exports,`suppressTracing`,{enumerable:!0,get:function(){return suppress_tracing_1.suppressTracing}}),Object.defineProperty(exports,`unsuppressTracing`,{enumerable:!0,get:function(){return suppress_tracing_1.unsuppressTracing}});var TraceState_1=require_TraceState();Object.defineProperty(exports,`TraceState`,{enumerable:!0,get:function(){return TraceState_1.TraceState}});var merge_1=require_merge();Object.defineProperty(exports,`merge`,{enumerable:!0,get:function(){return merge_1.merge}});var timeout_1=require_timeout();Object.defineProperty(exports,`TimeoutError`,{enumerable:!0,get:function(){return timeout_1.TimeoutError}}),Object.defineProperty(exports,`callWithTimeout`,{enumerable:!0,get:function(){return timeout_1.callWithTimeout}});var url_1=require_url();Object.defineProperty(exports,`isUrlIgnored`,{enumerable:!0,get:function(){return url_1.isUrlIgnored}}),Object.defineProperty(exports,`urlMatches`,{enumerable:!0,get:function(){return url_1.urlMatches}});var callback_1=require_callback();Object.defineProperty(exports,`BindOnceFuture`,{enumerable:!0,get:function(){return callback_1.BindOnceFuture}});var configuration_1=require_configuration();Object.defineProperty(exports,`diagLogLevelFromString`,{enumerable:!0,get:function(){return configuration_1.diagLogLevelFromString}}),exports.internal={_export:require_exporter()._export}})),require_enums=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExceptionEventName=void 0,exports.ExceptionEventName=`exception`})),require_Span=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SpanImpl=void 0;let api_1$15=__require(`@opentelemetry/api`),core_1=require_src$8(),semantic_conventions_1=__require(`@opentelemetry/semantic-conventions`),enums_1=require_enums();exports.SpanImpl=class{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;name;status={code:api_1$15.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(opts){let now=Date.now();this._spanContext=opts.spanContext,this._performanceStartTime=core_1.otperformance.now(),this._performanceOffset=now-(this._performanceStartTime+(0,core_1.getTimeOrigin)()),this._startTimeProvided=opts.startTime!=null,this._spanLimits=opts.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit||0,this._spanProcessor=opts.spanProcessor,this.name=opts.name,this.parentSpanContext=opts.parentSpanContext,this.kind=opts.kind,this.links=opts.links||[],this.startTime=this._getTime(opts.startTime??now),this.resource=opts.resource,this.instrumentationScope=opts.scope,opts.attributes!=null&&this.setAttributes(opts.attributes),this._spanProcessor.onStart(this,opts.context)}spanContext(){return this._spanContext}setAttribute(key,value){if(value==null||this._isSpanEnded())return this;if(key.length===0)return api_1$15.diag.warn(`Invalid attribute key: ${key}`),this;if(!(0,core_1.isAttributeValue)(value))return api_1$15.diag.warn(`Invalid attribute value set for key: ${key}`),this;let{attributeCountLimit}=this._spanLimits;return attributeCountLimit!==void 0&&Object.keys(this.attributes).length>=attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,key)?(this._droppedAttributesCount++,this):(this.attributes[key]=this._truncateToSize(value),this)}setAttributes(attributes){for(let[k,v]of Object.entries(attributes))this.setAttribute(k,v);return this}addEvent(name,attributesOrStartTime,timeStamp){if(this._isSpanEnded())return this;let{eventCountLimit}=this._spanLimits;if(eventCountLimit===0)return api_1$15.diag.warn(`No events allowed.`),this._droppedEventsCount++,this;eventCountLimit!==void 0&&this.events.length>=eventCountLimit&&(this._droppedEventsCount===0&&api_1$15.diag.debug(`Dropping extra events.`),this.events.shift(),this._droppedEventsCount++),(0,core_1.isTimeInput)(attributesOrStartTime)&&((0,core_1.isTimeInput)(timeStamp)||(timeStamp=attributesOrStartTime),attributesOrStartTime=void 0);let attributes=(0,core_1.sanitizeAttributes)(attributesOrStartTime);return this.events.push({name,attributes,time:this._getTime(timeStamp),droppedAttributesCount:0}),this}addLink(link){return this.links.push(link),this}addLinks(links){return this.links.push(...links),this}setStatus(status){return this._isSpanEnded()?this:(this.status={...status},this.status.message!=null&&typeof status.message!=`string`&&(api_1$15.diag.warn(`Dropping invalid status.message of type '${typeof status.message}', expected 'string'`),delete this.status.message),this)}updateName(name){return this._isSpanEnded()||(this.name=name),this}end(endTime){if(this._isSpanEnded()){api_1$15.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}this._ended=!0,this.endTime=this._getTime(endTime),this._duration=(0,core_1.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0&&(api_1$15.diag.warn(`Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.`,this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&api_1$15.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`),this._spanProcessor.onEnd(this)}_getTime(inp){if(typeof inp==`number`&&inp<=core_1.otperformance.now())return(0,core_1.hrTime)(inp+this._performanceOffset);if(typeof inp==`number`)return(0,core_1.millisToHrTime)(inp);if(inp instanceof Date)return(0,core_1.millisToHrTime)(inp.getTime());if((0,core_1.isTimeInputHrTime)(inp))return inp;if(this._startTimeProvided)return(0,core_1.millisToHrTime)(Date.now());let msDuration=core_1.otperformance.now()-this._performanceStartTime;return(0,core_1.addHrTimes)(this.startTime,(0,core_1.millisToHrTime)(msDuration))}isRecording(){return this._ended===!1}recordException(exception,time){let attributes={};typeof exception==`string`?attributes[semantic_conventions_1.ATTR_EXCEPTION_MESSAGE]=exception:exception&&(exception.code?attributes[semantic_conventions_1.ATTR_EXCEPTION_TYPE]=exception.code.toString():exception.name&&(attributes[semantic_conventions_1.ATTR_EXCEPTION_TYPE]=exception.name),exception.message&&(attributes[semantic_conventions_1.ATTR_EXCEPTION_MESSAGE]=exception.message),exception.stack&&(attributes[semantic_conventions_1.ATTR_EXCEPTION_STACKTRACE]=exception.stack)),attributes[semantic_conventions_1.ATTR_EXCEPTION_TYPE]||attributes[semantic_conventions_1.ATTR_EXCEPTION_MESSAGE]?this.addEvent(enums_1.ExceptionEventName,attributes,time):api_1$15.diag.warn(`Failed to record an exception ${exception}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let error=Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);api_1$15.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,error)}return this._ended}_truncateToLimitUtil(value,limit){return value.length<=limit?value:value.substring(0,limit)}_truncateToSize(value){let limit=this._attributeValueLengthLimit;return limit<=0?(api_1$15.diag.warn(`Attribute value limit must be positive, got ${limit}`),value):typeof value==`string`?this._truncateToLimitUtil(value,limit):Array.isArray(value)?value.map(val=>typeof val==`string`?this._truncateToLimitUtil(val,limit):val):value}}})),require_Sampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SamplingDecision=void 0,(function(SamplingDecision){SamplingDecision[SamplingDecision.NOT_RECORD=0]=`NOT_RECORD`,SamplingDecision[SamplingDecision.RECORD=1]=`RECORD`,SamplingDecision[SamplingDecision.RECORD_AND_SAMPLED=2]=`RECORD_AND_SAMPLED`})(exports.SamplingDecision||={})})),require_AlwaysOffSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AlwaysOffSampler=void 0;let Sampler_1=require_Sampler();exports.AlwaysOffSampler=class{shouldSample(){return{decision:Sampler_1.SamplingDecision.NOT_RECORD}}toString(){return`AlwaysOffSampler`}}})),require_AlwaysOnSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AlwaysOnSampler=void 0;let Sampler_1=require_Sampler();exports.AlwaysOnSampler=class{shouldSample(){return{decision:Sampler_1.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return`AlwaysOnSampler`}}})),require_ParentBasedSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ParentBasedSampler=void 0;let api_1$14=__require(`@opentelemetry/api`),core_1=require_src$8(),AlwaysOffSampler_1=require_AlwaysOffSampler(),AlwaysOnSampler_1=require_AlwaysOnSampler();exports.ParentBasedSampler=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(config){this._root=config.root,this._root||=((0,core_1.globalErrorHandler)(Error(`ParentBasedSampler must have a root sampler configured`)),new AlwaysOnSampler_1.AlwaysOnSampler),this._remoteParentSampled=config.remoteParentSampled??new AlwaysOnSampler_1.AlwaysOnSampler,this._remoteParentNotSampled=config.remoteParentNotSampled??new AlwaysOffSampler_1.AlwaysOffSampler,this._localParentSampled=config.localParentSampled??new AlwaysOnSampler_1.AlwaysOnSampler,this._localParentNotSampled=config.localParentNotSampled??new AlwaysOffSampler_1.AlwaysOffSampler}shouldSample(context$1,traceId,spanName,spanKind,attributes,links){let parentContext=api_1$14.trace.getSpanContext(context$1);return!parentContext||!(0,api_1$14.isSpanContextValid)(parentContext)?this._root.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):parentContext.isRemote?parentContext.traceFlags&api_1$14.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):this._remoteParentNotSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):parentContext.traceFlags&api_1$14.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links):this._localParentNotSampled.shouldSample(context$1,traceId,spanName,spanKind,attributes,links)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}}})),require_TraceIdRatioBasedSampler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TraceIdRatioBasedSampler=void 0;let api_1$13=__require(`@opentelemetry/api`),Sampler_1=require_Sampler();exports.TraceIdRatioBasedSampler=class{_ratio;_upperBound;constructor(_ratio=0){this._ratio=_ratio,this._ratio=this._normalize(_ratio),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(context$1,traceId){return{decision:(0,api_1$13.isValidTraceId)(traceId)&&this._accumulate(traceId)<this._upperBound?Sampler_1.SamplingDecision.RECORD_AND_SAMPLED:Sampler_1.SamplingDecision.NOT_RECORD}}toString(){return`TraceIdRatioBased{${this._ratio}}`}_normalize(ratio){return typeof ratio!=`number`||isNaN(ratio)?0:ratio>=1?1:ratio<=0?0:ratio}_accumulate(traceId){let accumulation=0;for(let i=0;i<traceId.length/8;i++){let pos=i*8,part=parseInt(traceId.slice(pos,pos+8),16);accumulation=(accumulation^part)>>>0}return accumulation}}})),require_config$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.buildSamplerFromEnv=exports.loadDefaultConfig=void 0;let api_1$12=__require(`@opentelemetry/api`),core_1=require_src$8(),AlwaysOffSampler_1=require_AlwaysOffSampler(),AlwaysOnSampler_1=require_AlwaysOnSampler(),ParentBasedSampler_1=require_ParentBasedSampler(),TraceIdRatioBasedSampler_1=require_TraceIdRatioBasedSampler();var TracesSamplerValues;(function(TracesSamplerValues){TracesSamplerValues.AlwaysOff=`always_off`,TracesSamplerValues.AlwaysOn=`always_on`,TracesSamplerValues.ParentBasedAlwaysOff=`parentbased_always_off`,TracesSamplerValues.ParentBasedAlwaysOn=`parentbased_always_on`,TracesSamplerValues.ParentBasedTraceIdRatio=`parentbased_traceidratio`,TracesSamplerValues.TraceIdRatio=`traceidratio`})(TracesSamplerValues||={});let DEFAULT_RATIO=1;function loadDefaultConfig(){return{sampler:buildSamplerFromEnv(),forceFlushTimeoutMillis:3e4,generalLimits:{attributeValueLengthLimit:(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0,attributeCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_COUNT_LIMIT`)??128},spanLimits:{attributeValueLengthLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0,attributeCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT`)??128,linkCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_LINK_COUNT_LIMIT`)??128,eventCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_EVENT_COUNT_LIMIT`)??128,attributePerEventCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT`)??128,attributePerLinkCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT`)??128}}}exports.loadDefaultConfig=loadDefaultConfig;function buildSamplerFromEnv(){let sampler=(0,core_1.getStringFromEnv)(`OTEL_TRACES_SAMPLER`)??TracesSamplerValues.ParentBasedAlwaysOn;switch(sampler){case TracesSamplerValues.AlwaysOn:return new AlwaysOnSampler_1.AlwaysOnSampler;case TracesSamplerValues.AlwaysOff:return new AlwaysOffSampler_1.AlwaysOffSampler;case TracesSamplerValues.ParentBasedAlwaysOn:return new ParentBasedSampler_1.ParentBasedSampler({root:new AlwaysOnSampler_1.AlwaysOnSampler});case TracesSamplerValues.ParentBasedAlwaysOff:return new ParentBasedSampler_1.ParentBasedSampler({root:new AlwaysOffSampler_1.AlwaysOffSampler});case TracesSamplerValues.TraceIdRatio:return new TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv());case TracesSamplerValues.ParentBasedTraceIdRatio:return new ParentBasedSampler_1.ParentBasedSampler({root:new TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv())});default:return api_1$12.diag.error(`OTEL_TRACES_SAMPLER value "${sampler}" invalid, defaulting to "${TracesSamplerValues.ParentBasedAlwaysOn}".`),new ParentBasedSampler_1.ParentBasedSampler({root:new AlwaysOnSampler_1.AlwaysOnSampler})}}exports.buildSamplerFromEnv=buildSamplerFromEnv;function getSamplerProbabilityFromEnv(){let probability=(0,core_1.getNumberFromEnv)(`OTEL_TRACES_SAMPLER_ARG`);return probability==null?(api_1$12.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to 1.`),1):probability<0||probability>1?(api_1$12.diag.error(`OTEL_TRACES_SAMPLER_ARG=${probability} was given, but it is out of range ([0..1]), defaulting to 1.`),1):probability}})),require_utility=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.reconfigureLimits=exports.mergeConfig=exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;let config_1=require_config$2(),core_1=require_src$8();exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128,exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function mergeConfig(userConfig){let perInstanceDefaults={sampler:(0,config_1.buildSamplerFromEnv)()},DEFAULT_CONFIG=(0,config_1.loadDefaultConfig)(),target=Object.assign({},DEFAULT_CONFIG,perInstanceDefaults,userConfig);return target.generalLimits=Object.assign({},DEFAULT_CONFIG.generalLimits,userConfig.generalLimits||{}),target.spanLimits=Object.assign({},DEFAULT_CONFIG.spanLimits,userConfig.spanLimits||{}),target}exports.mergeConfig=mergeConfig;function reconfigureLimits(userConfig){let spanLimits=Object.assign({},userConfig.spanLimits);return spanLimits.attributeCountLimit=userConfig.spanLimits?.attributeCountLimit??userConfig.generalLimits?.attributeCountLimit??(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_COUNT_LIMIT`)??exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,spanLimits.attributeValueLengthLimit=userConfig.spanLimits?.attributeValueLengthLimit??userConfig.generalLimits?.attributeValueLengthLimit??(0,core_1.getNumberFromEnv)(`OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},userConfig,{spanLimits})}exports.reconfigureLimits=reconfigureLimits})),require_BatchSpanProcessorBase=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchSpanProcessorBase=void 0;let api_1$11=__require(`@opentelemetry/api`),core_1=require_src$8();exports.BatchSpanProcessorBase=class{_exporter;_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(_exporter,config){this._exporter=_exporter,this._maxExportBatchSize=typeof config?.maxExportBatchSize==`number`?config.maxExportBatchSize:(0,core_1.getNumberFromEnv)(`OTEL_BSP_MAX_EXPORT_BATCH_SIZE`)??512,this._maxQueueSize=typeof config?.maxQueueSize==`number`?config.maxQueueSize:(0,core_1.getNumberFromEnv)(`OTEL_BSP_MAX_QUEUE_SIZE`)??2048,this._scheduledDelayMillis=typeof config?.scheduledDelayMillis==`number`?config.scheduledDelayMillis:(0,core_1.getNumberFromEnv)(`OTEL_BSP_SCHEDULE_DELAY`)??5e3,this._exportTimeoutMillis=typeof config?.exportTimeoutMillis==`number`?config.exportTimeoutMillis:(0,core_1.getNumberFromEnv)(`OTEL_BSP_EXPORT_TIMEOUT`)??3e4,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(api_1$11.diag.warn(`BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize`),this._maxExportBatchSize=this._maxQueueSize)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}onStart(_span,_parentContext){}onEnd(span){this._shutdownOnce.isCalled||(span.spanContext().traceFlags&api_1$11.TraceFlags.SAMPLED)!==0&&this._addToBuffer(span)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>this.onShutdown()).then(()=>this._flushAll()).then(()=>this._exporter.shutdown())}_addToBuffer(span){if(this._finishedSpans.length>=this._maxQueueSize){this._droppedSpansCount===0&&api_1$11.diag.debug(`maxQueueSize reached, dropping spans`),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(api_1$11.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0),this._finishedSpans.push(span),this._maybeStartTimer()}_flushAll(){return new Promise((resolve$1,reject)=>{let promises=[],count=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let i=0,j=count;i<j;i++)promises.push(this._flushOneBatch());Promise.all(promises).then(()=>{resolve$1()}).catch(reject)})}_flushOneBatch(){return this._clearTimer(),this._finishedSpans.length===0?Promise.resolve():new Promise((resolve$1,reject)=>{let timer=setTimeout(()=>{reject(Error(`Timeout`))},this._exportTimeoutMillis);api_1$11.context.with((0,core_1.suppressTracing)(api_1$11.context.active()),()=>{let spans;this._finishedSpans.length<=this._maxExportBatchSize?(spans=this._finishedSpans,this._finishedSpans=[]):spans=this._finishedSpans.splice(0,this._maxExportBatchSize);let doExport=()=>this._exporter.export(spans,result=>{clearTimeout(timer),result.code===core_1.ExportResultCode.SUCCESS?resolve$1():reject(result.error??Error(`BatchSpanProcessor: span export failed`))}),pendingResources=null;for(let i=0,len=spans.length;i<len;i++){let span=spans[i];span.resource.asyncAttributesPending&&span.resource.waitForAsyncAttributes&&(pendingResources??=[],pendingResources.push(span.resource.waitForAsyncAttributes()))}pendingResources===null?doExport():Promise.all(pendingResources).then(doExport,err=>{(0,core_1.globalErrorHandler)(err),reject(err)})})})}_maybeStartTimer(){if(this._isExporting)return;let flush=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{this._isExporting=!1,this._finishedSpans.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(e=>{this._isExporting=!1,(0,core_1.globalErrorHandler)(e)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return flush();this._timer===void 0&&(this._timer=setTimeout(()=>flush(),this._scheduledDelayMillis),typeof this._timer!=`number`&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}}})),require_BatchSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchSpanProcessor=void 0;let BatchSpanProcessorBase_1=require_BatchSpanProcessorBase();exports.BatchSpanProcessor=class extends BatchSpanProcessorBase_1.BatchSpanProcessorBase{onShutdown(){}}})),require_RandomIdGenerator=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RandomIdGenerator=void 0;let SPAN_ID_BYTES=8,TRACE_ID_BYTES=16;exports.RandomIdGenerator=class{generateTraceId=getIdGenerator(16);generateSpanId=getIdGenerator(8)};let SHARED_BUFFER=Buffer.allocUnsafe(16);function getIdGenerator(bytes){return function(){for(let i=0;i<bytes/4;i++)SHARED_BUFFER.writeUInt32BE(Math.random()*2**32>>>0,i*4);for(let i=0;i<bytes&&!(SHARED_BUFFER[i]>0);i++)i===bytes-1&&(SHARED_BUFFER[bytes-1]=1);return SHARED_BUFFER.toString(`hex`,0,bytes)}}})),require_node$4=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RandomIdGenerator=exports.BatchSpanProcessor=void 0;var BatchSpanProcessor_1=require_BatchSpanProcessor();Object.defineProperty(exports,`BatchSpanProcessor`,{enumerable:!0,get:function(){return BatchSpanProcessor_1.BatchSpanProcessor}});var RandomIdGenerator_1=require_RandomIdGenerator();Object.defineProperty(exports,`RandomIdGenerator`,{enumerable:!0,get:function(){return RandomIdGenerator_1.RandomIdGenerator}})})),require_platform$4=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RandomIdGenerator=exports.BatchSpanProcessor=void 0;var node_1=require_node$4();Object.defineProperty(exports,`BatchSpanProcessor`,{enumerable:!0,get:function(){return node_1.BatchSpanProcessor}}),Object.defineProperty(exports,`RandomIdGenerator`,{enumerable:!0,get:function(){return node_1.RandomIdGenerator}})})),require_Tracer=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Tracer=void 0;let api$5=__require(`@opentelemetry/api`),core_1=require_src$8(),Span_1=require_Span(),utility_1=require_utility(),platform_1=require_platform$4();exports.Tracer=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;constructor(instrumentationScope,config,resource,spanProcessor){let localConfig=(0,utility_1.mergeConfig)(config);this._sampler=localConfig.sampler,this._generalLimits=localConfig.generalLimits,this._spanLimits=localConfig.spanLimits,this._idGenerator=config.idGenerator||new platform_1.RandomIdGenerator,this._resource=resource,this._spanProcessor=spanProcessor,this.instrumentationScope=instrumentationScope}startSpan(name,options={},context$1=api$5.context.active()){options.root&&(context$1=api$5.trace.deleteSpan(context$1));let parentSpan=api$5.trace.getSpan(context$1);if((0,core_1.isTracingSuppressed)(context$1))return api$5.diag.debug(`Instrumentation suppressed, returning Noop Span`),api$5.trace.wrapSpanContext(api$5.INVALID_SPAN_CONTEXT);let parentSpanContext=parentSpan?.spanContext(),spanId=this._idGenerator.generateSpanId(),validParentSpanContext,traceId,traceState;!parentSpanContext||!api$5.trace.isSpanContextValid(parentSpanContext)?traceId=this._idGenerator.generateTraceId():(traceId=parentSpanContext.traceId,traceState=parentSpanContext.traceState,validParentSpanContext=parentSpanContext);let spanKind=options.kind??api$5.SpanKind.INTERNAL,links=(options.links??[]).map(link=>({context:link.context,attributes:(0,core_1.sanitizeAttributes)(link.attributes)})),attributes=(0,core_1.sanitizeAttributes)(options.attributes),samplingResult=this._sampler.shouldSample(context$1,traceId,name,spanKind,attributes,links);traceState=samplingResult.traceState??traceState;let traceFlags=samplingResult.decision===api$5.SamplingDecision.RECORD_AND_SAMPLED?api$5.TraceFlags.SAMPLED:api$5.TraceFlags.NONE,spanContext={traceId,spanId,traceFlags,traceState};if(samplingResult.decision===api$5.SamplingDecision.NOT_RECORD)return api$5.diag.debug(`Recording is off, propagating context in a non-recording span`),api$5.trace.wrapSpanContext(spanContext);let initAttributes=(0,core_1.sanitizeAttributes)(Object.assign(attributes,samplingResult.attributes));return new Span_1.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:context$1,spanContext,name,kind:spanKind,links,parentSpanContext:validParentSpanContext,attributes:initAttributes,startTime:options.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits})}startActiveSpan(name,arg2,arg3,arg4){let opts,ctx,fn;if(arguments.length<2)return;arguments.length===2?fn=arg2:arguments.length===3?(opts=arg2,fn=arg3):(opts=arg2,ctx=arg3,fn=arg4);let parentContext=ctx??api$5.context.active(),span=this.startSpan(name,opts,parentContext),contextWithSpanSet=api$5.trace.setSpan(parentContext,span);return api$5.context.with(contextWithSpanSet,fn,void 0,span)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}}})),require_MultiSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MultiSpanProcessor=void 0;let core_1=require_src$8();exports.MultiSpanProcessor=class{_spanProcessors;constructor(_spanProcessors){this._spanProcessors=_spanProcessors}forceFlush(){let promises=[];for(let spanProcessor of this._spanProcessors)promises.push(spanProcessor.forceFlush());return new Promise(resolve$1=>{Promise.all(promises).then(()=>{resolve$1()}).catch(error=>{(0,core_1.globalErrorHandler)(error||Error(`MultiSpanProcessor: forceFlush failed`)),resolve$1()})})}onStart(span,context$1){for(let spanProcessor of this._spanProcessors)spanProcessor.onStart(span,context$1)}onEnd(span){for(let spanProcessor of this._spanProcessors)spanProcessor.onEnd(span)}shutdown(){let promises=[];for(let spanProcessor of this._spanProcessors)promises.push(spanProcessor.shutdown());return new Promise((resolve$1,reject)=>{Promise.all(promises).then(()=>{resolve$1()},reject)})}}})),require_BasicTracerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BasicTracerProvider=exports.ForceFlushState=void 0;let core_1=require_src$8(),resources_1$2=__require(`@opentelemetry/resources`),Tracer_1=require_Tracer(),config_1=require_config$2(),MultiSpanProcessor_1=require_MultiSpanProcessor(),utility_1=require_utility();var ForceFlushState;(function(ForceFlushState){ForceFlushState[ForceFlushState.resolved=0]=`resolved`,ForceFlushState[ForceFlushState.timeout=1]=`timeout`,ForceFlushState[ForceFlushState.error=2]=`error`,ForceFlushState[ForceFlushState.unresolved=3]=`unresolved`})(ForceFlushState=exports.ForceFlushState||={}),exports.BasicTracerProvider=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(config={}){let mergedConfig=(0,core_1.merge)({},(0,config_1.loadDefaultConfig)(),(0,utility_1.reconfigureLimits)(config));this._resource=mergedConfig.resource??(0,resources_1$2.defaultResource)(),this._config=Object.assign({},mergedConfig,{resource:this._resource});let spanProcessors=[];config.spanProcessors?.length&&spanProcessors.push(...config.spanProcessors),this._activeSpanProcessor=new MultiSpanProcessor_1.MultiSpanProcessor(spanProcessors)}getTracer(name,version$1,options){let key=`${name}@${version$1||``}:${options?.schemaUrl||``}`;return this._tracers.has(key)||this._tracers.set(key,new Tracer_1.Tracer({name,version:version$1,schemaUrl:options?.schemaUrl},this._config,this._resource,this._activeSpanProcessor)),this._tracers.get(key)}forceFlush(){let timeout=this._config.forceFlushTimeoutMillis,promises=this._activeSpanProcessor._spanProcessors.map(spanProcessor=>new Promise(resolve$1=>{let state,timeoutInterval=setTimeout(()=>{resolve$1(Error(`Span processor did not completed within timeout period of ${timeout} ms`)),state=ForceFlushState.timeout},timeout);spanProcessor.forceFlush().then(()=>{clearTimeout(timeoutInterval),state!==ForceFlushState.timeout&&(state=ForceFlushState.resolved,resolve$1(state))}).catch(error=>{clearTimeout(timeoutInterval),state=ForceFlushState.error,resolve$1(error)})}));return new Promise((resolve$1,reject)=>{Promise.all(promises).then(results=>{let errors=results.filter(result=>result!==ForceFlushState.resolved);errors.length>0?reject(errors):resolve$1()}).catch(error=>reject([error]))})}shutdown(){return this._activeSpanProcessor.shutdown()}}})),require_ConsoleSpanExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ConsoleSpanExporter=void 0;let core_1=require_src$8();exports.ConsoleSpanExporter=class{export(spans,resultCallback){return this._sendSpans(spans,resultCallback)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(span){return{resource:{attributes:span.resource.attributes},instrumentationScope:span.instrumentationScope,traceId:span.spanContext().traceId,parentSpanContext:span.parentSpanContext,traceState:span.spanContext().traceState?.serialize(),name:span.name,id:span.spanContext().spanId,kind:span.kind,timestamp:(0,core_1.hrTimeToMicroseconds)(span.startTime),duration:(0,core_1.hrTimeToMicroseconds)(span.duration),attributes:span.attributes,status:span.status,events:span.events,links:span.links}}_sendSpans(spans,done){for(let span of spans)console.dir(this._exportInfo(span),{depth:3});if(done)return done({code:core_1.ExportResultCode.SUCCESS})}}})),require_InMemorySpanExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.InMemorySpanExporter=void 0;let core_1=require_src$8();exports.InMemorySpanExporter=class{_finishedSpans=[];_stopped=!1;export(spans,resultCallback){if(this._stopped)return resultCallback({code:core_1.ExportResultCode.FAILED,error:Error(`Exporter has been stopped`)});this._finishedSpans.push(...spans),setTimeout(()=>resultCallback({code:core_1.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}}})),require_SimpleSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SimpleSpanProcessor=void 0;let api_1$10=__require(`@opentelemetry/api`),core_1=require_src$8();exports.SimpleSpanProcessor=class{_exporter;_shutdownOnce;_pendingExports;constructor(_exporter){this._exporter=_exporter,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush&&await this._exporter.forceFlush()}onStart(_span,_parentContext){}onEnd(span){if(this._shutdownOnce.isCalled||(span.spanContext().traceFlags&api_1$10.TraceFlags.SAMPLED)===0)return;let pendingExport=this._doExport(span).catch(err=>(0,core_1.globalErrorHandler)(err));this._pendingExports.add(pendingExport),pendingExport.finally(()=>this._pendingExports.delete(pendingExport))}async _doExport(span){span.resource.asyncAttributesPending&&await span.resource.waitForAsyncAttributes?.();let result=await core_1.internal._export(this._exporter,[span]);if(result.code!==core_1.ExportResultCode.SUCCESS)throw result.error??Error(`SimpleSpanProcessor: span export failed (status ${result})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}})),require_NoopSpanProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NoopSpanProcessor=void 0,exports.NoopSpanProcessor=class{onStart(_span,_context){}onEnd(_span){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}})),require_src$7=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SamplingDecision=exports.TraceIdRatioBasedSampler=exports.ParentBasedSampler=exports.AlwaysOnSampler=exports.AlwaysOffSampler=exports.NoopSpanProcessor=exports.SimpleSpanProcessor=exports.InMemorySpanExporter=exports.ConsoleSpanExporter=exports.RandomIdGenerator=exports.BatchSpanProcessor=exports.BasicTracerProvider=void 0;var BasicTracerProvider_1=require_BasicTracerProvider();Object.defineProperty(exports,`BasicTracerProvider`,{enumerable:!0,get:function(){return BasicTracerProvider_1.BasicTracerProvider}});var platform_1=require_platform$4();Object.defineProperty(exports,`BatchSpanProcessor`,{enumerable:!0,get:function(){return platform_1.BatchSpanProcessor}}),Object.defineProperty(exports,`RandomIdGenerator`,{enumerable:!0,get:function(){return platform_1.RandomIdGenerator}});var ConsoleSpanExporter_1=require_ConsoleSpanExporter();Object.defineProperty(exports,`ConsoleSpanExporter`,{enumerable:!0,get:function(){return ConsoleSpanExporter_1.ConsoleSpanExporter}});var InMemorySpanExporter_1=require_InMemorySpanExporter();Object.defineProperty(exports,`InMemorySpanExporter`,{enumerable:!0,get:function(){return InMemorySpanExporter_1.InMemorySpanExporter}});var SimpleSpanProcessor_1=require_SimpleSpanProcessor();Object.defineProperty(exports,`SimpleSpanProcessor`,{enumerable:!0,get:function(){return SimpleSpanProcessor_1.SimpleSpanProcessor}});var NoopSpanProcessor_1=require_NoopSpanProcessor();Object.defineProperty(exports,`NoopSpanProcessor`,{enumerable:!0,get:function(){return NoopSpanProcessor_1.NoopSpanProcessor}});var AlwaysOffSampler_1=require_AlwaysOffSampler();Object.defineProperty(exports,`AlwaysOffSampler`,{enumerable:!0,get:function(){return AlwaysOffSampler_1.AlwaysOffSampler}});var AlwaysOnSampler_1=require_AlwaysOnSampler();Object.defineProperty(exports,`AlwaysOnSampler`,{enumerable:!0,get:function(){return AlwaysOnSampler_1.AlwaysOnSampler}});var ParentBasedSampler_1=require_ParentBasedSampler();Object.defineProperty(exports,`ParentBasedSampler`,{enumerable:!0,get:function(){return ParentBasedSampler_1.ParentBasedSampler}});var TraceIdRatioBasedSampler_1=require_TraceIdRatioBasedSampler();Object.defineProperty(exports,`TraceIdRatioBasedSampler`,{enumerable:!0,get:function(){return TraceIdRatioBasedSampler_1.TraceIdRatioBasedSampler}});var Sampler_1=require_Sampler();Object.defineProperty(exports,`SamplingDecision`,{enumerable:!0,get:function(){return Sampler_1.SamplingDecision}})})),require_traces=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Tracer=exports.installTraceContextManager=exports.isTraceContextWorking=exports.getActiveSpan=exports.runWithTrace=exports.SpanStatusCode=void 0;let utils_1=require_utils$3();var SpanStatusCode;(function(SpanStatusCode$1){SpanStatusCode$1[SpanStatusCode$1.UNSET=0]=`UNSET`,SpanStatusCode$1[SpanStatusCode$1.OK=1]=`OK`,SpanStatusCode$1[SpanStatusCode$1.ERROR=2]=`ERROR`})(SpanStatusCode||(exports.SpanStatusCode=SpanStatusCode={}));var StubSpan=class{attributes={};setStatus(_status){return this}setAttribute(_key,_attribute){return this}addEvent(_name,_attributesOrStartTime,_timeStamp){return this}};function runWithTrace(span,func){if(!utils_1.globalParams.enableOTLP)return func();let{context:context$1,trace:trace$1}=__require(`@opentelemetry/api`);return context$1.with(trace$1.setSpan(context$1.active(),span),func)}exports.runWithTrace=runWithTrace;function getActiveSpan(){if(!utils_1.globalParams.enableOTLP)return;let{trace:trace$1}=__require(`@opentelemetry/api`);return trace$1.getActiveSpan()}exports.getActiveSpan=getActiveSpan;function isTraceContextWorking(){if(!utils_1.globalParams.enableOTLP)return!1;let{context:context$1,trace:trace$1}=__require(`@opentelemetry/api`),span=trace$1.getTracer(`otel-bootstrap-check`).startSpan(`probe`),testContext=trace$1.setSpan(context$1.active(),span),visible;return context$1.with(testContext,()=>{visible=trace$1.getSpan(context$1.active())===span}),span.end?.(),visible===!0}exports.isTraceContextWorking=isTraceContextWorking;function installTraceContextManager(appName=`dbos`){if(!utils_1.globalParams.enableOTLP)return;let{AsyncLocalStorageContextManager}=require_src$9(),{context:context$1,trace:trace$1}=__require(`@opentelemetry/api`),{BasicTracerProvider}=require_src$7(),contextManager=new AsyncLocalStorageContextManager;contextManager.enable(),context$1.setGlobalContextManager(contextManager);let provider=new BasicTracerProvider({resource:{attributes:{"service.name":appName}}});trace$1.setGlobalTracerProvider(provider)}exports.installTraceContextManager=installTraceContextManager,exports.Tracer=class{telemetryCollector;applicationID;executorID;constructor(telemetryCollector,appName=`dbos`){if(this.telemetryCollector=telemetryCollector,this.applicationID=utils_1.globalParams.appID,this.executorID=utils_1.globalParams.executorID,!utils_1.globalParams.enableOTLP)return;let{trace:trace$1}=__require(`@opentelemetry/api`),{BasicTracerProvider}=require_src$7(),tracer=new BasicTracerProvider({resource:{attributes:{"service.name":appName}}});trace$1.setGlobalTracerProvider(tracer)}startSpanWithContext(spanContext,name,attributes){if(!utils_1.globalParams.enableOTLP)return new StubSpan;let opentelemetry=__require(`@opentelemetry/api`),tracer=opentelemetry.trace.getTracer(`dbos-tracer`),ctx=opentelemetry.trace.setSpanContext(opentelemetry.context.active(),spanContext);return tracer.startSpan(name,{startTime:performance.now(),attributes},ctx)}startSpan(name,attributes,inputSpan){if(!utils_1.globalParams.enableOTLP)return new StubSpan;let parentSpan=inputSpan,opentelemetry=__require(`@opentelemetry/api`),{hrTime}=require_src$8(),tracer=opentelemetry.trace.getTracer(`dbos-tracer`),startTime=hrTime(performance.now());if(parentSpan){let ctx=opentelemetry.trace.setSpan(opentelemetry.context.active(),parentSpan);return tracer.startSpan(name,{startTime,attributes},ctx)}else return tracer.startSpan(name,{startTime,attributes})}endSpan(inputSpan){if(!utils_1.globalParams.enableOTLP)return;let{hrTime}=require_src$8(),span=inputSpan;span.setAttributes({applicationID:this.applicationID,applicationVersion:utils_1.globalParams.appVersion}),span.attributes&&!(`executorID`in span.attributes)&&span.setAttribute(`executorID`,this.executorID),span.end(hrTime(performance.now())),this.telemetryCollector.push(span)}}})),require_LogRecord=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SeverityNumber=void 0,(function(SeverityNumber){SeverityNumber[SeverityNumber.UNSPECIFIED=0]=`UNSPECIFIED`,SeverityNumber[SeverityNumber.TRACE=1]=`TRACE`,SeverityNumber[SeverityNumber.TRACE2=2]=`TRACE2`,SeverityNumber[SeverityNumber.TRACE3=3]=`TRACE3`,SeverityNumber[SeverityNumber.TRACE4=4]=`TRACE4`,SeverityNumber[SeverityNumber.DEBUG=5]=`DEBUG`,SeverityNumber[SeverityNumber.DEBUG2=6]=`DEBUG2`,SeverityNumber[SeverityNumber.DEBUG3=7]=`DEBUG3`,SeverityNumber[SeverityNumber.DEBUG4=8]=`DEBUG4`,SeverityNumber[SeverityNumber.INFO=9]=`INFO`,SeverityNumber[SeverityNumber.INFO2=10]=`INFO2`,SeverityNumber[SeverityNumber.INFO3=11]=`INFO3`,SeverityNumber[SeverityNumber.INFO4=12]=`INFO4`,SeverityNumber[SeverityNumber.WARN=13]=`WARN`,SeverityNumber[SeverityNumber.WARN2=14]=`WARN2`,SeverityNumber[SeverityNumber.WARN3=15]=`WARN3`,SeverityNumber[SeverityNumber.WARN4=16]=`WARN4`,SeverityNumber[SeverityNumber.ERROR=17]=`ERROR`,SeverityNumber[SeverityNumber.ERROR2=18]=`ERROR2`,SeverityNumber[SeverityNumber.ERROR3=19]=`ERROR3`,SeverityNumber[SeverityNumber.ERROR4=20]=`ERROR4`,SeverityNumber[SeverityNumber.FATAL=21]=`FATAL`,SeverityNumber[SeverityNumber.FATAL2=22]=`FATAL2`,SeverityNumber[SeverityNumber.FATAL3=23]=`FATAL3`,SeverityNumber[SeverityNumber.FATAL4=24]=`FATAL4`})(exports.SeverityNumber||={})})),require_NoopLogger=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NOOP_LOGGER=exports.NoopLogger=void 0;var NoopLogger=class{emit(_logRecord){}};exports.NoopLogger=NoopLogger,exports.NOOP_LOGGER=new NoopLogger})),require_NoopLoggerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NOOP_LOGGER_PROVIDER=exports.NoopLoggerProvider=void 0;let NoopLogger_1=require_NoopLogger();var NoopLoggerProvider=class{getLogger(_name,_version,_options){return new NoopLogger_1.NoopLogger}};exports.NoopLoggerProvider=NoopLoggerProvider,exports.NOOP_LOGGER_PROVIDER=new NoopLoggerProvider})),require_ProxyLogger=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProxyLogger=void 0;let NoopLogger_1=require_NoopLogger();exports.ProxyLogger=class{constructor(_provider,name,version$1,options){this._provider=_provider,this.name=name,this.version=version$1,this.options=options}emit(logRecord){this._getLogger().emit(logRecord)}_getLogger(){if(this._delegate)return this._delegate;let logger=this._provider._getDelegateLogger(this.name,this.version,this.options);return logger?(this._delegate=logger,this._delegate):NoopLogger_1.NOOP_LOGGER}}})),require_ProxyLoggerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProxyLoggerProvider=void 0;let NoopLoggerProvider_1=require_NoopLoggerProvider(),ProxyLogger_1=require_ProxyLogger();exports.ProxyLoggerProvider=class{getLogger(name,version$1,options){var _a;return this._getDelegateLogger(name,version$1,options)??new ProxyLogger_1.ProxyLogger(this,name,version$1,options)}_getDelegate(){var _a;return this._delegate??NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER}_setDelegate(delegate){this._delegate=delegate}_getDelegateLogger(name,version$1,options){var _a;return this._delegate?.getLogger(name,version$1,options)}}})),require_globalThis=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0,exports._globalThis=typeof globalThis==`object`?globalThis:global})),require_node$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0;var globalThis_1=require_globalThis();Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return globalThis_1._globalThis}})})),require_platform$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports._globalThis=void 0;var node_1=require_node$3();Object.defineProperty(exports,`_globalThis`,{enumerable:!0,get:function(){return node_1._globalThis}})})),require_global_utils=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.API_BACKWARDS_COMPATIBILITY_VERSION=exports.makeGetter=exports._global=exports.GLOBAL_LOGS_API_KEY=void 0;let platform_1=require_platform$3();exports.GLOBAL_LOGS_API_KEY=Symbol.for(`io.opentelemetry.js.api.logs`),exports._global=platform_1._globalThis;function makeGetter(requiredVersion,instance,fallback){return version$1=>version$1===requiredVersion?instance:fallback}exports.makeGetter=makeGetter,exports.API_BACKWARDS_COMPATIBILITY_VERSION=1})),require_logs$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LogsAPI=void 0;let global_utils_1=require_global_utils(),NoopLoggerProvider_1=require_NoopLoggerProvider(),ProxyLoggerProvider_1=require_ProxyLoggerProvider();exports.LogsAPI=class LogsAPI{constructor(){this._proxyLoggerProvider=new ProxyLoggerProvider_1.ProxyLoggerProvider}static getInstance(){return this._instance||=new LogsAPI,this._instance}setGlobalLoggerProvider(provider){return global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]=(0,global_utils_1.makeGetter)(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION,provider,NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(provider),provider)}getLoggerProvider(){var _a,_b;return global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]?.call(global_utils_1._global,global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)??this._proxyLoggerProvider}getLogger(name,version$1,options){return this.getLoggerProvider().getLogger(name,version$1,options)}disable(){delete global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new ProxyLoggerProvider_1.ProxyLoggerProvider}}})),require_src$6=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.logs=exports.ProxyLoggerProvider=exports.NoopLogger=exports.NOOP_LOGGER=exports.SeverityNumber=void 0;var LogRecord_1=require_LogRecord();Object.defineProperty(exports,`SeverityNumber`,{enumerable:!0,get:function(){return LogRecord_1.SeverityNumber}});var NoopLogger_1=require_NoopLogger();Object.defineProperty(exports,`NOOP_LOGGER`,{enumerable:!0,get:function(){return NoopLogger_1.NOOP_LOGGER}}),Object.defineProperty(exports,`NoopLogger`,{enumerable:!0,get:function(){return NoopLogger_1.NoopLogger}});var ProxyLoggerProvider_1=require_ProxyLoggerProvider();Object.defineProperty(exports,`ProxyLoggerProvider`,{enumerable:!0,get:function(){return ProxyLoggerProvider_1.ProxyLoggerProvider}}),exports.logs=require_logs$3().LogsAPI.getInstance()})),require_LogRecordImpl=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LogRecordImpl=void 0;let api$4=__require(`@opentelemetry/api`),core_1=require_src$8();exports.LogRecordImpl=class{hrTime;hrTimeObserved;spanContext;resource;instrumentationScope;attributes={};_severityText;_severityNumber;_body;_eventName;totalAttributesCount=0;_isReadonly=!1;_logRecordLimits;set severityText(severityText){this._isLogRecordReadonly()||(this._severityText=severityText)}get severityText(){return this._severityText}set severityNumber(severityNumber){this._isLogRecordReadonly()||(this._severityNumber=severityNumber)}get severityNumber(){return this._severityNumber}set body(body){this._isLogRecordReadonly()||(this._body=body)}get body(){return this._body}get eventName(){return this._eventName}set eventName(eventName){this._isLogRecordReadonly()||(this._eventName=eventName)}get droppedAttributesCount(){return this.totalAttributesCount-Object.keys(this.attributes).length}constructor(_sharedState,instrumentationScope,logRecord){let{timestamp,observedTimestamp,eventName,severityNumber,severityText,body,attributes={},context:context$1}=logRecord,now=Date.now();if(this.hrTime=(0,core_1.timeInputToHrTime)(timestamp??now),this.hrTimeObserved=(0,core_1.timeInputToHrTime)(observedTimestamp??now),context$1){let spanContext=api$4.trace.getSpanContext(context$1);spanContext&&api$4.isSpanContextValid(spanContext)&&(this.spanContext=spanContext)}this.severityNumber=severityNumber,this.severityText=severityText,this.body=body,this.resource=_sharedState.resource,this.instrumentationScope=instrumentationScope,this._logRecordLimits=_sharedState.logRecordLimits,this._eventName=eventName,this.setAttributes(attributes)}setAttribute(key,value){return this._isLogRecordReadonly()||value===null?this:key.length===0?(api$4.diag.warn(`Invalid attribute key: ${key}`),this):!(0,core_1.isAttributeValue)(value)&&!(typeof value==`object`&&!Array.isArray(value)&&Object.keys(value).length>0)?(api$4.diag.warn(`Invalid attribute value set for key: ${key}`),this):(this.totalAttributesCount+=1,Object.keys(this.attributes).length>=this._logRecordLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,key)?(this.droppedAttributesCount===1&&api$4.diag.warn(`Dropping extra attributes.`),this):((0,core_1.isAttributeValue)(value)?this.attributes[key]=this._truncateToSize(value):this.attributes[key]=value,this))}setAttributes(attributes){for(let[k,v]of Object.entries(attributes))this.setAttribute(k,v);return this}setBody(body){return this.body=body,this}setEventName(eventName){return this.eventName=eventName,this}setSeverityNumber(severityNumber){return this.severityNumber=severityNumber,this}setSeverityText(severityText){return this.severityText=severityText,this}_makeReadonly(){this._isReadonly=!0}_truncateToSize(value){let limit=this._logRecordLimits.attributeValueLengthLimit;return limit<=0?(api$4.diag.warn(`Attribute value limit must be positive, got ${limit}`),value):typeof value==`string`?this._truncateToLimitUtil(value,limit):Array.isArray(value)?value.map(val=>typeof val==`string`?this._truncateToLimitUtil(val,limit):val):value}_truncateToLimitUtil(value,limit){return value.length<=limit?value:value.substring(0,limit)}_isLogRecordReadonly(){return this._isReadonly&&api$4.diag.warn(`Can not execute the operation on emitted log record`),this._isReadonly}}})),require_Logger=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Logger=void 0;let api_1$9=__require(`@opentelemetry/api`),LogRecordImpl_1=require_LogRecordImpl();exports.Logger=class{instrumentationScope;_sharedState;constructor(instrumentationScope,_sharedState){this.instrumentationScope=instrumentationScope,this._sharedState=_sharedState}emit(logRecord){let currentContext=logRecord.context||api_1$9.context.active(),logRecordInstance=new LogRecordImpl_1.LogRecordImpl(this._sharedState,this.instrumentationScope,{context:currentContext,...logRecord});this._sharedState.activeProcessor.onEmit(logRecordInstance,currentContext),logRecordInstance._makeReadonly()}}})),require_config$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.reconfigureLimits=exports.loadDefaultConfig=void 0;let core_1=require_src$8();function loadDefaultConfig(){return{forceFlushTimeoutMillis:3e4,logRecordLimits:{attributeValueLengthLimit:(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0,attributeCountLimit:(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT`)??128},includeTraceContext:!0}}exports.loadDefaultConfig=loadDefaultConfig;function reconfigureLimits(logRecordLimits){return{attributeCountLimit:logRecordLimits.attributeCountLimit??(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_COUNT_LIMIT`)??128,attributeValueLengthLimit:logRecordLimits.attributeValueLengthLimit??(0,core_1.getNumberFromEnv)(`OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??(0,core_1.getNumberFromEnv)(`OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT`)??1/0}}exports.reconfigureLimits=reconfigureLimits})),require_NoopLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.NoopLogRecordProcessor=void 0,exports.NoopLogRecordProcessor=class{forceFlush(){return Promise.resolve()}onEmit(_logRecord,_context){}shutdown(){return Promise.resolve()}}})),require_MultiLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MultiLogRecordProcessor=void 0;let core_1=require_src$8();exports.MultiLogRecordProcessor=class{processors;forceFlushTimeoutMillis;constructor(processors,forceFlushTimeoutMillis){this.processors=processors,this.forceFlushTimeoutMillis=forceFlushTimeoutMillis}async forceFlush(){let timeout=this.forceFlushTimeoutMillis;await Promise.all(this.processors.map(processor=>(0,core_1.callWithTimeout)(processor.forceFlush(),timeout)))}onEmit(logRecord,context$1){this.processors.forEach(processors=>processors.onEmit(logRecord,context$1))}async shutdown(){await Promise.all(this.processors.map(processor=>processor.shutdown()))}}})),require_LoggerProviderSharedState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LoggerProviderSharedState=void 0;let NoopLogRecordProcessor_1=require_NoopLogRecordProcessor(),MultiLogRecordProcessor_1=require_MultiLogRecordProcessor();exports.LoggerProviderSharedState=class{resource;forceFlushTimeoutMillis;logRecordLimits;processors;loggers=new Map;activeProcessor;registeredLogRecordProcessors=[];constructor(resource,forceFlushTimeoutMillis,logRecordLimits,processors){this.resource=resource,this.forceFlushTimeoutMillis=forceFlushTimeoutMillis,this.logRecordLimits=logRecordLimits,this.processors=processors,processors.length>0?(this.registeredLogRecordProcessors=processors,this.activeProcessor=new MultiLogRecordProcessor_1.MultiLogRecordProcessor(this.registeredLogRecordProcessors,this.forceFlushTimeoutMillis)):this.activeProcessor=new NoopLogRecordProcessor_1.NoopLogRecordProcessor}}})),require_LoggerProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LoggerProvider=exports.DEFAULT_LOGGER_NAME=void 0;let api_1$8=__require(`@opentelemetry/api`),api_logs_1=require_src$6(),resources_1$1=__require(`@opentelemetry/resources`),core_1=require_src$8(),Logger_1=require_Logger(),config_1=require_config$1(),LoggerProviderSharedState_1=require_LoggerProviderSharedState();exports.DEFAULT_LOGGER_NAME=`unknown`,exports.LoggerProvider=class{_shutdownOnce;_sharedState;constructor(config={}){let mergedConfig=(0,core_1.merge)({},(0,config_1.loadDefaultConfig)(),config),resource=config.resource??(0,resources_1$1.defaultResource)();this._sharedState=new LoggerProviderSharedState_1.LoggerProviderSharedState(resource,mergedConfig.forceFlushTimeoutMillis,(0,config_1.reconfigureLimits)(mergedConfig.logRecordLimits),config?.processors??[]),this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this)}getLogger(name,version$1,options){if(this._shutdownOnce.isCalled)return api_1$8.diag.warn(`A shutdown LoggerProvider cannot provide a Logger`),api_logs_1.NOOP_LOGGER;name||api_1$8.diag.warn(`Logger requested without instrumentation scope name.`);let loggerName=name||exports.DEFAULT_LOGGER_NAME,key=`${loggerName}@${version$1||``}:${options?.schemaUrl||``}`;return this._sharedState.loggers.has(key)||this._sharedState.loggers.set(key,new Logger_1.Logger({name:loggerName,version:version$1,schemaUrl:options?.schemaUrl},this._sharedState)),this._sharedState.loggers.get(key)}forceFlush(){return this._shutdownOnce.isCalled?(api_1$8.diag.warn(`invalid attempt to force flush after LoggerProvider shutdown`),this._shutdownOnce.promise):this._sharedState.activeProcessor.forceFlush()}shutdown(){return this._shutdownOnce.isCalled?(api_1$8.diag.warn(`shutdown may only be called once per LoggerProvider`),this._shutdownOnce.promise):this._shutdownOnce.call()}_shutdown(){return this._sharedState.activeProcessor.shutdown()}}})),require_ConsoleLogRecordExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ConsoleLogRecordExporter=void 0;let core_1=require_src$8();exports.ConsoleLogRecordExporter=class{export(logs,resultCallback){this._sendLogRecords(logs,resultCallback)}shutdown(){return Promise.resolve()}_exportInfo(logRecord){return{resource:{attributes:logRecord.resource.attributes},instrumentationScope:logRecord.instrumentationScope,timestamp:(0,core_1.hrTimeToMicroseconds)(logRecord.hrTime),traceId:logRecord.spanContext?.traceId,spanId:logRecord.spanContext?.spanId,traceFlags:logRecord.spanContext?.traceFlags,severityText:logRecord.severityText,severityNumber:logRecord.severityNumber,body:logRecord.body,attributes:logRecord.attributes}}_sendLogRecords(logRecords,done){for(let logRecord of logRecords)console.dir(this._exportInfo(logRecord),{depth:3});done?.({code:core_1.ExportResultCode.SUCCESS})}}})),require_SimpleLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SimpleLogRecordProcessor=void 0;let core_1=require_src$8();exports.SimpleLogRecordProcessor=class{_exporter;_shutdownOnce;_unresolvedExports;constructor(_exporter){this._exporter=_exporter,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._unresolvedExports=new Set}onEmit(logRecord){if(this._shutdownOnce.isCalled)return;let doExport=()=>core_1.internal._export(this._exporter,[logRecord]).then(result=>{result.code!==core_1.ExportResultCode.SUCCESS&&(0,core_1.globalErrorHandler)(result.error??Error(`SimpleLogRecordProcessor: log record export failed (status ${result})`))}).catch(core_1.globalErrorHandler);if(logRecord.resource.asyncAttributesPending){let exportPromise=logRecord.resource.waitForAsyncAttributes?.().then(()=>(this._unresolvedExports.delete(exportPromise),doExport()),core_1.globalErrorHandler);exportPromise!=null&&this._unresolvedExports.add(exportPromise)}else doExport()}async forceFlush(){await Promise.all(Array.from(this._unresolvedExports))}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}}})),require_InMemoryLogRecordExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.InMemoryLogRecordExporter=void 0;let core_1=require_src$8();exports.InMemoryLogRecordExporter=class{_finishedLogRecords=[];_stopped=!1;export(logs,resultCallback){if(this._stopped)return resultCallback({code:core_1.ExportResultCode.FAILED,error:Error(`Exporter has been stopped`)});this._finishedLogRecords.push(...logs),resultCallback({code:core_1.ExportResultCode.SUCCESS})}shutdown(){return this._stopped=!0,this.reset(),Promise.resolve()}getFinishedLogRecords(){return this._finishedLogRecords}reset(){this._finishedLogRecords=[]}}})),require_BatchLogRecordProcessorBase=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessorBase=void 0;let api_1$7=__require(`@opentelemetry/api`),core_1=require_src$8();exports.BatchLogRecordProcessorBase=class{_exporter;_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_isExporting=!1;_finishedLogRecords=[];_timer;_shutdownOnce;constructor(_exporter,config){this._exporter=_exporter,this._maxExportBatchSize=config?.maxExportBatchSize??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_MAX_EXPORT_BATCH_SIZE`)??512,this._maxQueueSize=config?.maxQueueSize??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_MAX_QUEUE_SIZE`)??2048,this._scheduledDelayMillis=config?.scheduledDelayMillis??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_SCHEDULE_DELAY`)??5e3,this._exportTimeoutMillis=config?.exportTimeoutMillis??(0,core_1.getNumberFromEnv)(`OTEL_BLRP_EXPORT_TIMEOUT`)??3e4,this._shutdownOnce=new core_1.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(api_1$7.diag.warn(`BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize`),this._maxExportBatchSize=this._maxQueueSize)}onEmit(logRecord){this._shutdownOnce.isCalled||this._addToBuffer(logRecord)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}shutdown(){return this._shutdownOnce.call()}async _shutdown(){this.onShutdown(),await this._flushAll(),await this._exporter.shutdown()}_addToBuffer(logRecord){this._finishedLogRecords.length>=this._maxQueueSize||(this._finishedLogRecords.push(logRecord),this._maybeStartTimer())}_flushAll(){return new Promise((resolve$1,reject)=>{let promises=[],batchCount=Math.ceil(this._finishedLogRecords.length/this._maxExportBatchSize);for(let i=0;i<batchCount;i++)promises.push(this._flushOneBatch());Promise.all(promises).then(()=>{resolve$1()}).catch(reject)})}_flushOneBatch(){return this._clearTimer(),this._finishedLogRecords.length===0?Promise.resolve():new Promise((resolve$1,reject)=>{(0,core_1.callWithTimeout)(this._export(this._finishedLogRecords.splice(0,this._maxExportBatchSize)),this._exportTimeoutMillis).then(()=>resolve$1()).catch(reject)})}_maybeStartTimer(){if(this._isExporting)return;let flush=()=>{this._isExporting=!0,this._flushOneBatch().then(()=>{this._isExporting=!1,this._finishedLogRecords.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(e=>{this._isExporting=!1,(0,core_1.globalErrorHandler)(e)})};if(this._finishedLogRecords.length>=this._maxExportBatchSize)return flush();this._timer===void 0&&(this._timer=setTimeout(()=>flush(),this._scheduledDelayMillis),typeof this._timer!=`number`&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}_export(logRecords){let doExport=()=>core_1.internal._export(this._exporter,logRecords).then(result=>{result.code!==core_1.ExportResultCode.SUCCESS&&(0,core_1.globalErrorHandler)(result.error??Error(`BatchLogRecordProcessor: log record export failed (status ${result})`))}).catch(core_1.globalErrorHandler),pendingResources=logRecords.map(logRecord=>logRecord.resource).filter(resource=>resource.asyncAttributesPending);return pendingResources.length===0?doExport():Promise.all(pendingResources.map(resource=>resource.waitForAsyncAttributes?.())).then(doExport,core_1.globalErrorHandler)}}})),require_BatchLogRecordProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=void 0;let BatchLogRecordProcessorBase_1=require_BatchLogRecordProcessorBase();exports.BatchLogRecordProcessor=class extends BatchLogRecordProcessorBase_1.BatchLogRecordProcessorBase{onShutdown(){}}})),require_node$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=void 0;var BatchLogRecordProcessor_1=require_BatchLogRecordProcessor();Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return BatchLogRecordProcessor_1.BatchLogRecordProcessor}})})),require_platform$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=void 0;var node_1=require_node$2();Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return node_1.BatchLogRecordProcessor}})})),require_src$5=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchLogRecordProcessor=exports.InMemoryLogRecordExporter=exports.SimpleLogRecordProcessor=exports.ConsoleLogRecordExporter=exports.LoggerProvider=void 0;var LoggerProvider_1=require_LoggerProvider();Object.defineProperty(exports,`LoggerProvider`,{enumerable:!0,get:function(){return LoggerProvider_1.LoggerProvider}});var ConsoleLogRecordExporter_1=require_ConsoleLogRecordExporter();Object.defineProperty(exports,`ConsoleLogRecordExporter`,{enumerable:!0,get:function(){return ConsoleLogRecordExporter_1.ConsoleLogRecordExporter}});var SimpleLogRecordProcessor_1=require_SimpleLogRecordProcessor();Object.defineProperty(exports,`SimpleLogRecordProcessor`,{enumerable:!0,get:function(){return SimpleLogRecordProcessor_1.SimpleLogRecordProcessor}});var InMemoryLogRecordExporter_1=require_InMemoryLogRecordExporter();Object.defineProperty(exports,`InMemoryLogRecordExporter`,{enumerable:!0,get:function(){return InMemoryLogRecordExporter_1.InMemoryLogRecordExporter}});var platform_1=require_platform$2();Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return platform_1.BatchLogRecordProcessor}})})),require_logs$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOSConsoleLogger=exports.DBOSContextualLogger=exports.GlobalLogger=void 0;let utils_1=require_utils$3();var SeverityNumber;(function(SeverityNumber){SeverityNumber[SeverityNumber.UNSPECIFIED=0]=`UNSPECIFIED`,SeverityNumber[SeverityNumber.TRACE=1]=`TRACE`,SeverityNumber[SeverityNumber.TRACE2=2]=`TRACE2`,SeverityNumber[SeverityNumber.TRACE3=3]=`TRACE3`,SeverityNumber[SeverityNumber.TRACE4=4]=`TRACE4`,SeverityNumber[SeverityNumber.DEBUG=5]=`DEBUG`,SeverityNumber[SeverityNumber.DEBUG2=6]=`DEBUG2`,SeverityNumber[SeverityNumber.DEBUG3=7]=`DEBUG3`,SeverityNumber[SeverityNumber.DEBUG4=8]=`DEBUG4`,SeverityNumber[SeverityNumber.INFO=9]=`INFO`,SeverityNumber[SeverityNumber.INFO2=10]=`INFO2`,SeverityNumber[SeverityNumber.INFO3=11]=`INFO3`,SeverityNumber[SeverityNumber.INFO4=12]=`INFO4`,SeverityNumber[SeverityNumber.WARN=13]=`WARN`,SeverityNumber[SeverityNumber.WARN2=14]=`WARN2`,SeverityNumber[SeverityNumber.WARN3=15]=`WARN3`,SeverityNumber[SeverityNumber.WARN4=16]=`WARN4`,SeverityNumber[SeverityNumber.ERROR=17]=`ERROR`,SeverityNumber[SeverityNumber.ERROR2=18]=`ERROR2`,SeverityNumber[SeverityNumber.ERROR3=19]=`ERROR3`,SeverityNumber[SeverityNumber.ERROR4=20]=`ERROR4`,SeverityNumber[SeverityNumber.FATAL=21]=`FATAL`,SeverityNumber[SeverityNumber.FATAL2=22]=`FATAL2`,SeverityNumber[SeverityNumber.FATAL3=23]=`FATAL3`,SeverityNumber[SeverityNumber.FATAL4=24]=`FATAL4`})(SeverityNumber||={}),exports.GlobalLogger=class{telemetryCollector;logger;addContextMetadata;isLogging=!1;constructor(telemetryCollector,config,appName=`dbos`){if(this.telemetryCollector=telemetryCollector,this.addContextMetadata=config?.addContextMetadata||!1,!utils_1.globalParams.enableOTLP){this.logger=new DBOSConsoleLogger(config??{});return}let TransportStream=__require(`winston-transport`);class OTLPLogQueueTransport extends TransportStream{telemetryCollector;name=`OTLPLogQueueTransport`;otelLogger;applicationID;executorID;constructor(telemetryCollector$1,logLevel){super(),this.telemetryCollector=telemetryCollector$1,this.level=logLevel;let{LoggerProvider}=require_src$5(),logRecordProcessor={forceFlush:async()=>{},onEmit(logRecord){telemetryCollector$1.push(logRecord)},shutdown:async()=>{}};this.otelLogger=new LoggerProvider({resource:{attributes:{"service.name":appName}},processors:[logRecordProcessor]}).getLogger(`dbos-logger`),this.applicationID=utils_1.globalParams.appID,this.executorID=utils_1.globalParams.executorID}log(info,callback){let{level,message,stack,span}=info,levelToSeverityNumber={error:SeverityNumber.ERROR,warn:SeverityNumber.WARN,info:SeverityNumber.INFO,debug:SeverityNumber.DEBUG};this.otelLogger.emit({severityNumber:levelToSeverityNumber[level],severityText:level,body:message,timestamp:performance.now(),observedTimestamp:performance.now(),attributes:{...span?.attributes,traceId:span?.spanContext()?.traceId,spanId:span?.spanContext()?.spanId,stack,applicationID:this.applicationID,applicationVersion:utils_1.globalParams.appVersion,executorID:this.executorID}}),callback()}}let{transports,createLogger}=__require(`winston`),winstonTransports=[];winstonTransports.push(new transports.Console({format:getConsoleFormat(),level:config?.logLevel||`info`,silent:config?.silent||!1,forceConsole:config?.forceConsole||!1}));let otlpTransport;utils_1.globalParams.enableOTLP&&this.telemetryCollector?.exporter&&(otlpTransport=new OTLPLogQueueTransport(this.telemetryCollector,config?.logLevel||`info`),winstonTransports.push(otlpTransport)),this.logger=createLogger({transports:winstonTransports}),utils_1.globalParams.enableOTLP&&process.env.DBOS__CAPTURE_STD!==`false`&&this.telemetryCollector?.exporter&&(0,utils_1.interceptStreams)((msg,stream)=>{stream===`stdout`?this.isLogging||otlpTransport?.log({level:`info`,message:msg.trim()},()=>{}):this.isLogging||otlpTransport?.log({level:`error`,message:msg.trim(),stack:Error().stack},()=>{})})}info(logEntry,metadata){this.isLogging=!0,typeof logEntry==`string`?this.logger.info(logEntry,metadata):this.logger.info(utils_1.DBOSJSON.stringify(logEntry),metadata),this.isLogging=!1}debug(logEntry,metadata){this.isLogging=!0,typeof logEntry==`string`?this.logger.debug(logEntry,metadata):this.logger.debug(utils_1.DBOSJSON.stringify(logEntry),metadata),this.isLogging=!1}warn(logEntry,metadata){this.isLogging=!0,typeof logEntry==`string`?this.logger.warn(logEntry,metadata):this.logger.warn(utils_1.DBOSJSON.stringify(logEntry),metadata),this.isLogging=!1}error(inputError,metadata){this.isLogging=!0,inputError instanceof Error?this.logger.error(inputError.message,{...metadata,stack:inputError.stack}):typeof inputError==`string`?this.logger.error(inputError,{...metadata,stack:Error().stack}):this.logger.error(utils_1.DBOSJSON.stringify(inputError),{...metadata,stack:Error().stack}),this.isLogging=!1}async destroy(){await this.telemetryCollector?.destroy()}},exports.DBOSContextualLogger=class{globalLogger;ctx;includeContextMetadata;constructor(globalLogger,ctx){this.globalLogger=globalLogger,this.ctx=ctx,this.includeContextMetadata=this.globalLogger.addContextMetadata}info(logEntry,metadata){this.globalLogger.info(logEntry,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}debug(logEntry,metadata){this.globalLogger.debug(logEntry,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}warn(logEntry,metadata){this.globalLogger.warn(logEntry,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}error(inputError,metadata){this.globalLogger.error(inputError,{includeContextMetadata:this.includeContextMetadata,span:this.ctx(),...metadata})}};var DBOSConsoleLogger=class{config;constructor(config){this.config=config}info(logEntry,_metadata){console.log(logEntry)}debug(logEntry,_metadata){this.config.logLevel===`debug`&&console.debug(logEntry)}warn(logEntry,_metadata){console.warn(logEntry)}error(inputError,metadata){inputError instanceof Error?console.error(inputError):metadata?.stack?console.error(inputError,`
|
|
4
4
|
`,metadata.stack):console.error(inputError)}};exports.DBOSConsoleLogger=DBOSConsoleLogger;function getConsoleFormat(){let{format}=__require(`winston`);return format.combine(format.errors({stack:!0}),format.timestamp(),format.colorize(),format.printf(info=>{let{timestamp,level,message,stack}=info,applicationVersion=utils_1.globalParams.appVersion,ts=typeof timestamp==`string`?timestamp.slice(0,19).replace(`T`,` `):void 0,formattedStack=typeof stack==`string`?stack?.split(`
|
|
5
5
|
`).slice(1).join(`
|
|
6
6
|
`):void 0,fullMessageString=`${typeof message==`string`?message:utils_1.DBOSJSON.stringify(message)}${info.includeContextMetadata?` ${utils_1.DBOSJSON.stringify(info.span?.attributes)}`:``}`;return`${ts}${applicationVersion?` [version ${applicationVersion}]`:``} [${level}]: ${fullMessageString} ${stack?`
|
|
@@ -8,10 +8,10 @@ import{n as loadEvents}from"./event-v2sCJkNd.mjs";import{a as COMMANDS_DIR,i as
|
|
|
8
8
|
`)}};Directives.defaultYaml={explicit:!1,version:`1.2`},Directives.defaultTags={"!!":`tag:yaml.org,2002:`},exports.Directives=Directives})),require_anchors=__commonJSMin((exports=>{var identity=require_identity(),visit=require_visit();function anchorIsValid(anchor){if(/[\x00-\x19\s,[\]{}]/.test(anchor)){let msg=`Anchor must not contain whitespace or control characters: ${JSON.stringify(anchor)}`;throw Error(msg)}return!0}function anchorNames(root){let anchors=new Set;return visit.visit(root,{Value(_key,node){node.anchor&&anchors.add(node.anchor)}}),anchors}function findNewAnchor(prefix,exclude){for(let i=1;;++i){let name=`${prefix}${i}`;if(!exclude.has(name))return name}}function createNodeAnchors(doc,prefix){let aliasObjects=[],sourceObjects=new Map,prevAnchors=null;return{onAnchor:source=>{aliasObjects.push(source),prevAnchors||=anchorNames(doc);let anchor=findNewAnchor(prefix,prevAnchors);return prevAnchors.add(anchor),anchor},setAnchors:()=>{for(let source of aliasObjects){let ref=sourceObjects.get(source);if(typeof ref==`object`&&ref.anchor&&(identity.isScalar(ref.node)||identity.isCollection(ref.node)))ref.node.anchor=ref.anchor;else{let error=Error(`Failed to resolve repeated object (this should not happen)`);throw error.source=source,error}}},sourceObjects}}exports.anchorIsValid=anchorIsValid,exports.anchorNames=anchorNames,exports.createNodeAnchors=createNodeAnchors,exports.findNewAnchor=findNewAnchor})),require_applyReviver=__commonJSMin((exports=>{function applyReviver(reviver,obj,key,val){if(val&&typeof val==`object`)if(Array.isArray(val))for(let i=0,len=val.length;i<len;++i){let v0=val[i],v1=applyReviver(reviver,val,String(i),v0);v1===void 0?delete val[i]:v1!==v0&&(val[i]=v1)}else if(val instanceof Map)for(let k of Array.from(val.keys())){let v0=val.get(k),v1=applyReviver(reviver,val,k,v0);v1===void 0?val.delete(k):v1!==v0&&val.set(k,v1)}else if(val instanceof Set)for(let v0 of Array.from(val)){let v1=applyReviver(reviver,val,v0,v0);v1===void 0?val.delete(v0):v1!==v0&&(val.delete(v0),val.add(v1))}else for(let[k,v0]of Object.entries(val)){let v1=applyReviver(reviver,val,k,v0);v1===void 0?delete val[k]:v1!==v0&&(val[k]=v1)}return reviver.call(obj,key,val)}exports.applyReviver=applyReviver})),require_toJS=__commonJSMin((exports=>{var identity=require_identity();function toJS(value,arg,ctx){if(Array.isArray(value))return value.map((v,i)=>toJS(v,String(i),ctx));if(value&&typeof value.toJSON==`function`){if(!ctx||!identity.hasAnchor(value))return value.toJSON(arg,ctx);let data={aliasCount:0,count:1,res:void 0};ctx.anchors.set(value,data),ctx.onCreate=res$1=>{data.res=res$1,delete ctx.onCreate};let res=value.toJSON(arg,ctx);return ctx.onCreate&&ctx.onCreate(res),res}return typeof value==`bigint`&&!ctx?.keep?Number(value):value}exports.toJS=toJS})),require_Node=__commonJSMin((exports=>{var applyReviver=require_applyReviver(),identity=require_identity(),toJS=require_toJS();exports.NodeBase=class{constructor(type){Object.defineProperty(this,identity.NODE_TYPE,{value:type})}clone(){let copy=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(copy.range=this.range.slice()),copy}toJS(doc,{mapAsMap,maxAliasCount,onAnchor,reviver}={}){if(!identity.isDocument(doc))throw TypeError(`A document argument is required`);let ctx={anchors:new Map,doc,keep:!0,mapAsMap:mapAsMap===!0,mapKeyWarned:!1,maxAliasCount:typeof maxAliasCount==`number`?maxAliasCount:100},res=toJS.toJS(this,``,ctx);if(typeof onAnchor==`function`)for(let{count,res:res$1}of ctx.anchors.values())onAnchor(res$1,count);return typeof reviver==`function`?applyReviver.applyReviver(reviver,{"":res},``,res):res}}})),require_Alias=__commonJSMin((exports=>{var anchors=require_anchors(),visit=require_visit(),identity=require_identity(),Node=require_Node(),toJS=require_toJS(),Alias=class extends Node.NodeBase{constructor(source){super(identity.ALIAS),this.source=source,Object.defineProperty(this,`tag`,{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(doc){let found;return visit.visit(doc,{Node:(_key,node)=>{if(node===this)return visit.visit.BREAK;node.anchor===this.source&&(found=node)}}),found}toJSON(_arg,ctx){if(!ctx)return{source:this.source};let{anchors,doc,maxAliasCount}=ctx,source=this.resolve(doc);if(!source){let msg=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(msg)}let data=anchors.get(source);if(data||=(toJS.toJS(source,null,ctx),anchors.get(source)),!data||data.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(maxAliasCount>=0&&(data.count+=1,data.aliasCount===0&&(data.aliasCount=getAliasCount(doc,source,anchors)),data.count*data.aliasCount>maxAliasCount))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return data.res}toString(ctx,_onComment,_onChompKeep){let src=`*${this.source}`;if(ctx){if(anchors.anchorIsValid(this.source),ctx.options.verifyAliasOrder&&!ctx.anchors.has(this.source)){let msg=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(msg)}if(ctx.implicitKey)return`${src} `}return src}};function getAliasCount(doc,node,anchors){if(identity.isAlias(node)){let source=node.resolve(doc),anchor=anchors&&source&&anchors.get(source);return anchor?anchor.count*anchor.aliasCount:0}else if(identity.isCollection(node)){let count=0;for(let item of node.items){let c=getAliasCount(doc,item,anchors);c>count&&(count=c)}return count}else if(identity.isPair(node)){let kc=getAliasCount(doc,node.key,anchors),vc=getAliasCount(doc,node.value,anchors);return Math.max(kc,vc)}return 1}exports.Alias=Alias})),require_Scalar=__commonJSMin((exports=>{var identity=require_identity(),Node=require_Node(),toJS=require_toJS();let isScalarValue=value=>!value||typeof value!=`function`&&typeof value!=`object`;var Scalar=class extends Node.NodeBase{constructor(value){super(identity.SCALAR),this.value=value}toJSON(arg,ctx){return ctx?.keep?this.value:toJS.toJS(this.value,arg,ctx)}toString(){return String(this.value)}};Scalar.BLOCK_FOLDED=`BLOCK_FOLDED`,Scalar.BLOCK_LITERAL=`BLOCK_LITERAL`,Scalar.PLAIN=`PLAIN`,Scalar.QUOTE_DOUBLE=`QUOTE_DOUBLE`,Scalar.QUOTE_SINGLE=`QUOTE_SINGLE`,exports.Scalar=Scalar,exports.isScalarValue=isScalarValue})),require_createNode=__commonJSMin((exports=>{var Alias=require_Alias(),identity=require_identity(),Scalar=require_Scalar();let defaultTagPrefix=`tag:yaml.org,2002:`;function findTagObject(value,tagName,tags){if(tagName){let match=tags.filter(t=>t.tag===tagName),tagObj=match.find(t=>!t.format)??match[0];if(!tagObj)throw Error(`Tag ${tagName} not found`);return tagObj}return tags.find(t=>t.identify?.(value)&&!t.format)}function createNode(value,tagName,ctx){if(identity.isDocument(value)&&(value=value.contents),identity.isNode(value))return value;if(identity.isPair(value)){let map=ctx.schema[identity.MAP].createNode?.(ctx.schema,null,ctx);return map.items.push(value),map}(value instanceof String||value instanceof Number||value instanceof Boolean||typeof BigInt<`u`&&value instanceof BigInt)&&(value=value.valueOf());let{aliasDuplicateObjects,onAnchor,onTagObj,schema,sourceObjects}=ctx,ref;if(aliasDuplicateObjects&&value&&typeof value==`object`){if(ref=sourceObjects.get(value),ref)return ref.anchor||=onAnchor(value),new Alias.Alias(ref.anchor);ref={anchor:null,node:null},sourceObjects.set(value,ref)}tagName?.startsWith(`!!`)&&(tagName=`tag:yaml.org,2002:`+tagName.slice(2));let tagObj=findTagObject(value,tagName,schema.tags);if(!tagObj){if(value&&typeof value.toJSON==`function`&&(value=value.toJSON()),!value||typeof value!=`object`){let node$1=new Scalar.Scalar(value);return ref&&(ref.node=node$1),node$1}tagObj=value instanceof Map?schema[identity.MAP]:Symbol.iterator in Object(value)?schema[identity.SEQ]:schema[identity.MAP]}onTagObj&&(onTagObj(tagObj),delete ctx.onTagObj);let node=tagObj?.createNode?tagObj.createNode(ctx.schema,value,ctx):typeof tagObj?.nodeClass?.from==`function`?tagObj.nodeClass.from(ctx.schema,value,ctx):new Scalar.Scalar(value);return tagName?node.tag=tagName:tagObj.default||(node.tag=tagObj.tag),ref&&(ref.node=node),node}exports.createNode=createNode})),require_Collection=__commonJSMin((exports=>{var createNode=require_createNode(),identity=require_identity(),Node=require_Node();function collectionFromPath(schema,path$2,value){let v=value;for(let i=path$2.length-1;i>=0;--i){let k=path$2[i];if(typeof k==`number`&&Number.isInteger(k)&&k>=0){let a=[];a[k]=v,v=a}else v=new Map([[k,v]])}return createNode.createNode(v,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema,sourceObjects:new Map})}let isEmptyPath=path$2=>path$2==null||typeof path$2==`object`&&!!path$2[Symbol.iterator]().next().done;var Collection=class extends Node.NodeBase{constructor(type,schema){super(type),Object.defineProperty(this,`schema`,{value:schema,configurable:!0,enumerable:!1,writable:!0})}clone(schema){let copy=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return schema&&(copy.schema=schema),copy.items=copy.items.map(it=>identity.isNode(it)||identity.isPair(it)?it.clone(schema):it),this.range&&(copy.range=this.range.slice()),copy}addIn(path$2,value){if(isEmptyPath(path$2))this.add(value);else{let[key,...rest]=path$2,node=this.get(key,!0);if(identity.isCollection(node))node.addIn(rest,value);else if(node===void 0&&this.schema)this.set(key,collectionFromPath(this.schema,rest,value));else throw Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`)}}deleteIn(path$2){let[key,...rest]=path$2;if(rest.length===0)return this.delete(key);let node=this.get(key,!0);if(identity.isCollection(node))return node.deleteIn(rest);throw Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`)}getIn(path$2,keepScalar){let[key,...rest]=path$2,node=this.get(key,!0);return rest.length===0?!keepScalar&&identity.isScalar(node)?node.value:node:identity.isCollection(node)?node.getIn(rest,keepScalar):void 0}hasAllNullValues(allowScalar){return this.items.every(node=>{if(!identity.isPair(node))return!1;let n=node.value;return n==null||allowScalar&&identity.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(path$2){let[key,...rest]=path$2;if(rest.length===0)return this.has(key);let node=this.get(key,!0);return identity.isCollection(node)?node.hasIn(rest):!1}setIn(path$2,value){let[key,...rest]=path$2;if(rest.length===0)this.set(key,value);else{let node=this.get(key,!0);if(identity.isCollection(node))node.setIn(rest,value);else if(node===void 0&&this.schema)this.set(key,collectionFromPath(this.schema,rest,value));else throw Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`)}}};Collection.maxFlowStringSingleLineLength=60,exports.Collection=Collection,exports.collectionFromPath=collectionFromPath,exports.isEmptyPath=isEmptyPath})),require_stringifyComment=__commonJSMin((exports=>{let stringifyComment=str=>str.replace(/^(?!$)(?: $)?/gm,`#`);function indentComment(comment,indent){return/^\n+$/.test(comment)?comment.substring(1):indent?comment.replace(/^(?! *$)/gm,indent):comment}exports.indentComment=indentComment,exports.lineComment=(str,indent,comment)=>str.endsWith(`
|
|
9
9
|
`)?indentComment(comment,indent):comment.includes(`
|
|
10
10
|
`)?`
|
|
11
|
-
`+indentComment(comment,indent):(str.endsWith(` `)?``:` `)+comment,exports.stringifyComment=stringifyComment})),require_foldFlowLines=__commonJSMin((exports=>{let FOLD_FLOW=`flow`,FOLD_BLOCK=`block`,FOLD_QUOTED=`quoted`;function foldFlowLines(text,indent,mode=`flow`,{indentAtStart,lineWidth=80,minContentWidth=20,onFold,onOverflow}={}){if(!lineWidth||lineWidth<0)return text;let endStep=Math.max(1+minContentWidth,1+lineWidth-indent.length);if(text.length<=endStep)return text;let folds=[],escapedFolds={},end=lineWidth-indent.length;typeof indentAtStart==`number`&&(indentAtStart>lineWidth-Math.max(2,minContentWidth)?folds.push(0):end=lineWidth-indentAtStart);let split
|
|
12
|
-
`)mode===FOLD_BLOCK&&(i=consumeMoreIndentedLines(text,i,indent.length)),end=i+indent.length+endStep,split
|
|
11
|
+
`+indentComment(comment,indent):(str.endsWith(` `)?``:` `)+comment,exports.stringifyComment=stringifyComment})),require_foldFlowLines=__commonJSMin((exports=>{let FOLD_FLOW=`flow`,FOLD_BLOCK=`block`,FOLD_QUOTED=`quoted`;function foldFlowLines(text,indent,mode=`flow`,{indentAtStart,lineWidth=80,minContentWidth=20,onFold,onOverflow}={}){if(!lineWidth||lineWidth<0)return text;let endStep=Math.max(1+minContentWidth,1+lineWidth-indent.length);if(text.length<=endStep)return text;let folds=[],escapedFolds={},end=lineWidth-indent.length;typeof indentAtStart==`number`&&(indentAtStart>lineWidth-Math.max(2,minContentWidth)?folds.push(0):end=lineWidth-indentAtStart);let split,prev,overflow=!1,i=-1,escStart=-1,escEnd=-1;mode===FOLD_BLOCK&&(i=consumeMoreIndentedLines(text,i,indent.length),i!==-1&&(end=i+endStep));for(let ch;ch=text[i+=1];){if(mode===FOLD_QUOTED&&ch===`\\`){switch(escStart=i,text[i+1]){case`x`:i+=3;break;case`u`:i+=5;break;case`U`:i+=9;break;default:i+=1}escEnd=i}if(ch===`
|
|
12
|
+
`)mode===FOLD_BLOCK&&(i=consumeMoreIndentedLines(text,i,indent.length)),end=i+indent.length+endStep,split=void 0;else{if(ch===` `&&prev&&prev!==` `&&prev!==`
|
|
13
13
|
`&&prev!==` `){let next=text[i+1];next&&next!==` `&&next!==`
|
|
14
|
-
`&&next!==` `&&(split
|
|
14
|
+
`&&next!==` `&&(split=i)}if(i>=end)if(split)folds.push(split),end=split+endStep,split=void 0;else if(mode===FOLD_QUOTED){for(;prev===` `||prev===` `;)prev=ch,ch=text[i+=1],overflow=!0;let j=i>escEnd+1?i-2:escStart-1;if(escapedFolds[j])return text;folds.push(j),escapedFolds[j]=!0,end=j+endStep,split=void 0}else overflow=!0}prev=ch}if(overflow&&onOverflow&&onOverflow(),folds.length===0)return text;onFold&&onFold();let res=text.slice(0,folds[0]);for(let i$1=0;i$1<folds.length;++i$1){let fold=folds[i$1],end$1=folds[i$1+1]||text.length;fold===0?res=`\n${indent}${text.slice(0,end$1)}`:(mode===FOLD_QUOTED&&escapedFolds[fold]&&(res+=`${text[fold]}\\`),res+=`\n${indent}${text.slice(fold+1,end$1)}`)}return res}function consumeMoreIndentedLines(text,i,indent){let end=i,start=i+1,ch=text[start];for(;ch===` `||ch===` `;)if(i<start+indent)ch=text[++i];else{do ch=text[++i];while(ch&&ch!==`
|
|
15
15
|
`);end=i,start=i+1,ch=text[start]}return end}exports.FOLD_BLOCK=FOLD_BLOCK,exports.FOLD_FLOW=`flow`,exports.FOLD_QUOTED=FOLD_QUOTED,exports.foldFlowLines=foldFlowLines})),require_stringifyString=__commonJSMin((exports=>{var Scalar=require_Scalar(),foldFlowLines=require_foldFlowLines();let getFoldOptions=(ctx,isBlock)=>({indentAtStart:isBlock?ctx.indent.length:ctx.indentAtStart,lineWidth:ctx.options.lineWidth,minContentWidth:ctx.options.minContentWidth}),containsDocumentMarker=str=>/^(%|---|\.\.\.)/m.test(str);function lineLengthOverLimit(str,lineWidth,indentLength){if(!lineWidth||lineWidth<0)return!1;let limit=lineWidth-indentLength,strLen=str.length;if(strLen<=limit)return!1;for(let i=0,start=0;i<strLen;++i)if(str[i]===`
|
|
16
16
|
`){if(i-start>limit)return!0;if(start=i+1,strLen-start<=limit)return!1}return!0}function doubleQuotedString(value,ctx){let json=JSON.stringify(value);if(ctx.options.doubleQuotedAsJSON)return json;let{implicitKey}=ctx,minMultiLineLength=ctx.options.doubleQuotedMinMultiLineLength,indent=ctx.indent||(containsDocumentMarker(value)?` `:``),str=``,start=0;for(let i=0,ch=json[i];ch;ch=json[++i])if(ch===` `&&json[i+1]===`\\`&&json[i+2]===`n`&&(str+=json.slice(start,i)+`\\ `,i+=1,start=i,ch=`\\`),ch===`\\`)switch(json[i+1]){case`u`:{str+=json.slice(start,i);let code=json.substr(i+2,4);switch(code){case`0000`:str+=`\\0`;break;case`0007`:str+=`\\a`;break;case`000b`:str+=`\\v`;break;case`001b`:str+=`\\e`;break;case`0085`:str+=`\\N`;break;case`00a0`:str+=`\\_`;break;case`2028`:str+=`\\L`;break;case`2029`:str+=`\\P`;break;default:code.substr(0,2)===`00`?str+=`\\x`+code.substr(2):str+=json.substr(i,6)}i+=5,start=i+1}break;case`n`:if(implicitKey||json[i+2]===`"`||json.length<minMultiLineLength)i+=1;else{for(str+=json.slice(start,i)+`
|
|
17
17
|
|
|
@@ -67,7 +67,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
67
67
|
`+lines[i][0].slice(trimIndent);value[value.length-1]!==`
|
|
68
68
|
`&&(value+=`
|
|
69
69
|
`);break;default:value+=`
|
|
70
|
-
`}let end=start+header.length+scalar.source.length;return{value,type,comment:header.comment,range:[start,end,end]}}function parseBlockScalarHeader({offset,props},strict,onError){if(props[0].type!==`block-scalar-header`)return onError(props[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source}=props[0],mode=source[0],indent=0,chomp=``,error=-1;for(let i=1;i<source.length;++i){let ch=source[i];if(!chomp&&(ch===`-`||ch===`+`))chomp=ch;else{let n=Number(ch);!indent&&n?indent=n:error===-1&&(error=offset+i)}}error!==-1&&onError(error,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${source}`);let hasSpace=!1,comment=``,length=source.length;for(let i=1;i<props.length;++i){let token=props[i];switch(token.type){case`space`:hasSpace=!0;case`newline`:length+=token.source.length;break;case`comment`:strict&&!hasSpace&&onError(token,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),length+=token.source.length,comment=token.source.substring(1);break;case`error`:onError(token,`UNEXPECTED_TOKEN`,token.message),length+=token.source.length;break;default:{onError(token,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${token.type}`);let ts=token.source;ts&&typeof ts==`string`&&(length+=ts.length)}}}return{mode,indent,chomp,comment,length}}function splitLines(source){let split
|
|
70
|
+
`}let end=start+header.length+scalar.source.length;return{value,type,comment:header.comment,range:[start,end,end]}}function parseBlockScalarHeader({offset,props},strict,onError){if(props[0].type!==`block-scalar-header`)return onError(props[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source}=props[0],mode=source[0],indent=0,chomp=``,error=-1;for(let i=1;i<source.length;++i){let ch=source[i];if(!chomp&&(ch===`-`||ch===`+`))chomp=ch;else{let n=Number(ch);!indent&&n?indent=n:error===-1&&(error=offset+i)}}error!==-1&&onError(error,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${source}`);let hasSpace=!1,comment=``,length=source.length;for(let i=1;i<props.length;++i){let token=props[i];switch(token.type){case`space`:hasSpace=!0;case`newline`:length+=token.source.length;break;case`comment`:strict&&!hasSpace&&onError(token,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),length+=token.source.length,comment=token.source.substring(1);break;case`error`:onError(token,`UNEXPECTED_TOKEN`,token.message),length+=token.source.length;break;default:{onError(token,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${token.type}`);let ts=token.source;ts&&typeof ts==`string`&&(length+=ts.length)}}}return{mode,indent,chomp,comment,length}}function splitLines(source){let split=source.split(/\n( *)/),first=split[0],m=first.match(/^( *)/),lines=[m?.[1]?[m[1],first.slice(m[1].length)]:[``,first]];for(let i=1;i<split.length;i+=2)lines.push([split[i],split[i+1]]);return lines}exports.resolveBlockScalar=resolveBlockScalar})),require_resolve_flow_scalar=__commonJSMin((exports=>{var Scalar=require_Scalar(),resolveEnd=require_resolve_end();function resolveFlowScalar(scalar,strict,onError){let{offset,type,source,end}=scalar,_type,value,_onError=(rel,code,msg)=>onError(offset+rel,code,msg);switch(type){case`scalar`:_type=Scalar.Scalar.PLAIN,value=plainValue(source,_onError);break;case`single-quoted-scalar`:_type=Scalar.Scalar.QUOTE_SINGLE,value=singleQuotedValue(source,_onError);break;case`double-quoted-scalar`:_type=Scalar.Scalar.QUOTE_DOUBLE,value=doubleQuotedValue(source,_onError);break;default:return onError(scalar,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${type}`),{value:``,type:null,comment:``,range:[offset,offset+source.length,offset+source.length]}}let valueEnd=offset+source.length,re=resolveEnd.resolveEnd(end,valueEnd,strict,onError);return{value,type:_type,comment:re.comment,range:[offset,valueEnd,re.offset]}}function plainValue(source,onError){let badChar=``;switch(source[0]){case` `:badChar=`a tab character`;break;case`,`:badChar=`flow indicator character ,`;break;case`%`:badChar=`directive indicator character %`;break;case`|`:case`>`:badChar=`block scalar indicator ${source[0]}`;break;case`@`:case"`":badChar=`reserved character ${source[0]}`;break}return badChar&&onError(0,`BAD_SCALAR_START`,`Plain value cannot start with ${badChar}`),foldLines(source)}function singleQuotedValue(source,onError){return(source[source.length-1]!==`'`||source.length===1)&&onError(source.length,`MISSING_CHAR`,`Missing closing 'quote`),foldLines(source.slice(1,-1)).replace(/''/g,`'`)}function foldLines(source){let first,line;try{first=RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
71
71
|
`,`sy`),line=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
72
72
|
`,`sy`)}catch{first=/(.*?)[ \t]*\r?\n/sy,line=/[ \t]*(.*?)[ \t]*\r?\n/sy}let match=first.exec(source);if(!match)return source;let res=match[1],sep=` `,pos=first.lastIndex;for(line.lastIndex=pos;match=line.exec(source);)match[1]===``?sep===`
|
|
73
73
|
`?res+=sep:sep=`
|
|
@@ -126,12 +126,12 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
126
126
|
`).slice(frames+1).map(l=>`>>> `+l.replace(/^\s*at\s*/,``))}};let dbosLaunchPoint;function recordDBOSLaunch(){dbosLaunchPoint=new StackGrabber().getCleanStack(2)}exports.recordDBOSLaunch=recordDBOSLaunch;function recordDBOSShutdown(){dbosLaunchPoint=void 0}exports.recordDBOSShutdown=recordDBOSShutdown;function ensureDBOSIsNotLaunched(){if(dbosLaunchPoint)throw new error_1.DBOSConflictingRegistrationError(`DBOS code is being registered after DBOS.launch(). DBOS was launched from:\n${dbosLaunchPoint.join(`
|
|
127
127
|
`)}\n`)}exports.ensureDBOSIsNotLaunched=ensureDBOSIsNotLaunched;function ensureDBOSIsLaunched(reason){if(!dbosLaunchPoint)throw TypeError(`\`DBOS.launch()\` must be called before running ${reason}.`)}exports.ensureDBOSIsLaunched=ensureDBOSIsLaunched;let lifecycleListeners=[];function registerLifecycleCallback(lcl){lifecycleListeners.includes(lcl)||lifecycleListeners.push(lcl)}exports.registerLifecycleCallback=registerLifecycleCallback;function getLifecycleListeners(){return lifecycleListeners}exports.getLifecycleListeners=getLifecycleListeners;let installedMiddleware=!1,middlewareInstallers=[];function registerMiddlewareInstaller(i){if(installedMiddleware)throw TypeError(`Attempt to provide method middleware after insertion was performed`);middlewareInstallers.includes(i)||middlewareInstallers.push(i)}exports.registerMiddlewareInstaller=registerMiddlewareInstaller;function insertAllMiddleware(){if(!installedMiddleware){installedMiddleware=!0;for(let[_cn,c]of classesByName)for(let f of c.reg.allRegisteredOperations.values())for(let i of middlewareInstallers)i.installMiddleware(f)}}exports.insertAllMiddleware=insertAllMiddleware;let functionToRegistration=new Map;function registerClassInstance(inst,instname){let creg=getOrCreateClassRegistration(inst.constructor);if(creg.configuredInstances.has(instname))throw new error_1.DBOSConflictingRegistrationError(`An instance of class '${inst.constructor.name}' with name '${instname}' was already registered. Earlier registration occurred at:\n${(creg.configuredInstanceRegLocs.get(instname)??[]).join(`
|
|
128
128
|
`)}`);creg.configuredInstances.set(instname,inst),creg.configuredInstanceRegLocs.set(instname,new StackGrabber().getCleanStack(3)??[])}function getRegisteredFunctionFullName(func){let className=``,funcName=func.name??``;if(functionToRegistration.has(func)){let fr=functionToRegistration.get(func);className=fr.className,funcName=fr.name}return{className,name:funcName}}exports.getRegisteredFunctionFullName=getRegisteredFunctionFullName;function getRegisteredFunctionQualifiedName(func){let fn=getRegisteredFunctionFullName(func);return fn.className+`.`+fn.name}exports.getRegisteredFunctionQualifiedName=getRegisteredFunctionQualifiedName;function getRegisteredFunctionClassName(func){return getRegisteredFunctionFullName(func).className}exports.getRegisteredFunctionClassName=getRegisteredFunctionClassName;function getRegisteredFunctionName(func){return getRegisteredFunctionFullName(func).name}exports.getRegisteredFunctionName=getRegisteredFunctionName;function registerFunctionWrapper(func,reg){reg.wrappedFunction=func,functionToRegistration.set(func,reg)}exports.registerFunctionWrapper=registerFunctionWrapper;function getFunctionRegistration(func){return functionToRegistration.get(func)}exports.getFunctionRegistration=getFunctionRegistration;function getFunctionRegistrationByName(className,name){let clsreg=getClassRegistrationByName(className,!1);if(!clsreg)return;let methReg=clsreg.registeredOperationsByName.get(name);if(methReg)return methReg}exports.getFunctionRegistrationByName=getFunctionRegistrationByName;function getRegisteredOperations(target){let registeredOperations=[];if(typeof target==`function`)classesByName.get(target.name)?.reg?.allRegisteredOperations?.forEach(m=>registeredOperations.push(m));else{let current=target;for(;current;){let cname=current.constructor.name;classesByName.has(cname)&®isteredOperations.push(...getRegisteredOperations(current.constructor)),current=Object.getPrototypeOf(current)}}return registeredOperations}exports.getRegisteredOperations=getRegisteredOperations;function getRegisteredFunctionsByClassname(target){let registeredOperations=[];return getClassRegistrationByName(target)?.allRegisteredOperations?.forEach(m=>registeredOperations.push(m)),registeredOperations}exports.getRegisteredFunctionsByClassname=getRegisteredFunctionsByClassname;let methodArgsByFunction=new Map;function getOrCreateMethodArgsRegistration(target,funcName,origFunc){let regtarget=target;regtarget&&typeof regtarget!=`function`&&(regtarget=regtarget.constructor),origFunc||=Object.getOwnPropertyDescriptor(target,funcName).value;let mParameters=methodArgsByFunction.get(origFunc);if(mParameters===void 0){let designParamTypes;if(target){function getDesignType(target$1,key){let getMetadata=Reflect?.getMetadata;if(getMetadata)return getMetadata(`design:paramtypes`,target$1,key)}designParamTypes=getDesignType(target,funcName)}mParameters=designParamTypes?designParamTypes.map((value,index)=>new MethodParameter(index,value)):origFunc?getArgNames(origFunc).map((_value,index)=>new MethodParameter(index)):getArgNames(Object.getOwnPropertyDescriptor(target,funcName)?.value).map((_value,index)=>new MethodParameter(index)),methodArgsByFunction.set(origFunc,mParameters)}return mParameters}exports.getOrCreateMethodArgsRegistration=getOrCreateMethodArgsRegistration;function getOrCreateMethodRegistration(target,className,propertyKey,func){let classReg,isInstance;({classReg,isInstance,className}=getOrCreateClassRegistrationByName(target,className));let fname=propertyKey.toString(),origFunc=functionToRegistration.get(func)?.origFunction??func;if(!classReg.allRegisteredOperations.has(origFunc)){let reg=new MethodRegistration(func,isInstance);classReg.allRegisteredOperations.set(func,reg)}let methReg=classReg.allRegisteredOperations.get(func);if(methReg.needInitialized){methReg.needInitialized=!1,methReg.name=fname,methReg.className=classReg.name,methReg.defaults=classReg,methReg.args=getOrCreateMethodArgsRegistration(target,propertyKey,func);let argNames=getArgNames(func);methReg.args.forEach(e=>{e.name||e.index<argNames.length&&(e.name=argNames[e.index])});let wrappedMethod=async function(...rawArgs){let validatedArgs=rawArgs;for(let vf of methReg.onEnter)validatedArgs=vf.func(methReg,validatedArgs);return methReg.origFunction.call(this,...validatedArgs)};Object.defineProperty(wrappedMethod,`name`,{value:methReg.name}),methReg.registeredFunction=wrappedMethod,functionToRegistration.set(methReg.registeredFunction,methReg),functionToRegistration.set(methReg.origFunction,methReg)}return methReg}function wrapDBOSFunctionAndRegisterByUniqueNameDec(target,propertyKey,descriptor){if(!descriptor.value)throw Error(`Use of decorator when original method is undefined`);let registration=wrapDBOSFunctionAndRegisterByUniqueName(target,void 0,propertyKey,descriptor.value);return descriptor.value=registration.wrappedFunction??registration.registeredFunction,{descriptor,registration}}exports.wrapDBOSFunctionAndRegisterByUniqueNameDec=wrapDBOSFunctionAndRegisterByUniqueNameDec;function wrapDBOSFunctionAndRegisterByUniqueName(ctorOrProto,className,propertyKey,func){ensureDBOSIsNotLaunched();let name=typeof propertyKey==`string`?propertyKey:propertyKey.toString(),freg=getFunctionRegistration(func);if(freg)return getOrCreateClassRegistrationByName(ctorOrProto,className).classReg.registerOperationByName(name,freg),freg;let registration=getOrCreateMethodRegistration(ctorOrProto,className,propertyKey,func);return getOrCreateClassRegistrationByName(ctorOrProto,className).classReg.registerOperationByName(name,registration),registration}exports.wrapDBOSFunctionAndRegisterByUniqueName=wrapDBOSFunctionAndRegisterByUniqueName;function wrapDBOSFunctionAndRegisterDec(target,propertyKey,descriptor){if(!descriptor.value)throw Error(`Use of decorator when original method is undefined`);let registration=wrapDBOSFunctionAndRegister(target,void 0,propertyKey,descriptor.value);return descriptor.value=registration.wrappedFunction??registration.registeredFunction,{descriptor,registration}}exports.wrapDBOSFunctionAndRegisterDec=wrapDBOSFunctionAndRegisterDec;function wrapDBOSFunctionAndRegister(ctorOrProto,className,propertyKey,func){return ensureDBOSIsNotLaunched(),getFunctionRegistration(func)||getOrCreateMethodRegistration(ctorOrProto,className,propertyKey,func)}exports.wrapDBOSFunctionAndRegister=wrapDBOSFunctionAndRegister;let classesByName=new Map,classesByCtor=new Map;function getNameForClass(ctor){let regtarget;return regtarget=typeof ctor==`function`?ctor:ctor.constructor,classesByCtor.has(regtarget)?classesByCtor.get(regtarget).name:regtarget.name}exports.getNameForClass=getNameForClass;function getAllRegisteredClassNames(){let cnames=[];for(let[cn,_creg]of classesByName)cnames.push(cn);return cnames}exports.getAllRegisteredClassNames=getAllRegisteredClassNames;function getAllRegisteredFunctions(){let s=new Set,fregs=[];for(let[_f,reg]of functionToRegistration)s.has(reg)||(fregs.push(reg),s.add(reg));return fregs}exports.getAllRegisteredFunctions=getAllRegisteredFunctions;function getClassRegistrationByName(name,create=!1){if(!classesByName.has(name)&&!create)throw new error_1.DBOSNotRegisteredError(name,`Class '${name}' is not registered`);classesByName.has(name)||classesByName.set(name,{reg:new ClassRegistration});let clsReg=classesByName.get(name).reg;return clsReg.needsInitialized&&=(clsReg.name=name,!1),clsReg}exports.getClassRegistrationByName=getClassRegistrationByName;function getOrCreateClassRegistration(ctor){let name=getNameForClass(ctor);classesByName.has(name)||classesByName.set(name,{ctor,reg:new ClassRegistration});let clsReg=classesByName.get(name).reg;return clsReg.needsInitialized&&=(clsReg.name=name,!1),clsReg}exports.getOrCreateClassRegistration=getOrCreateClassRegistration;function getOrCreateClassRegistrationByName(target,className){let regtarget,isInstance=!1;return target&&(typeof target==`function`?regtarget=target:(regtarget=target.constructor,isInstance=!0)),className||regtarget&&(className=regtarget.name),className||=``,{classReg:getClassRegistrationByName(className,!0),isInstance,className}}function getConfiguredInstance(clsname,cfgname){let classReg=classesByName.get(clsname)?.reg;return classReg?classReg.configuredInstances.get(cfgname)??null:null}exports.getConfiguredInstance=getConfiguredInstance,exports.transactionalDataSources=new Map;function registerTransactionalDataSource(name,ds){if(exports.transactionalDataSources.has(name)){if(exports.transactionalDataSources.get(name)!==ds)throw new error_1.DBOSConflictingRegistrationError(`Data source with name ${name} is already registered`);return}ensureDBOSIsNotLaunched(),exports.transactionalDataSources.set(name,ds)}exports.registerTransactionalDataSource=registerTransactionalDataSource;function getTransactionalDataSource(name){if(exports.transactionalDataSources.has(name))return exports.transactionalDataSources.get(name);throw new error_1.DBOSNotRegisteredError(name,`Data source '${name}' is not registered`)}exports.getTransactionalDataSource=getTransactionalDataSource;function associateClassWithExternal(external,cls){return getClassRegistrationByName(typeof cls==`string`?cls:getNameForClass(cls),!0).getRegisteredInfo(external)}exports.associateClassWithExternal=associateClassWithExternal;function associateMethodWithExternal(external,target,className,funcName,func){let registration=wrapDBOSFunctionAndRegister(target,className,funcName,func);return registration.externalRegInfo.has(external)||registration.externalRegInfo.set(external,{}),{registration,regInfo:registration.externalRegInfo.get(external)}}exports.associateMethodWithExternal=associateMethodWithExternal;function associateParameterWithExternal(external,target,className,funcName,func,paramId){func||=Object.getOwnPropertyDescriptor(target,funcName).value;let registration=wrapDBOSFunctionAndRegister(target,className,funcName,func),param;if(param=typeof paramId==`number`?registration.args[paramId]:registration.args.find(p$1=>p$1.name===paramId),param)return param.externalRegInfo.has(external)||param.externalRegInfo.set(external,{}),param.externalRegInfo.get(external)}exports.associateParameterWithExternal=associateParameterWithExternal;function getRegistrationsForExternal(external,cls,funcName){let res=[];if(cls){let clsname=typeof cls==`string`?cls:getNameForClass(cls),c=classesByName.get(clsname);if(c)if(funcName){let f=c.reg.registeredOperationsByName.get(funcName);f&&collectRegForFunction(f)}else collectRegForClass(c)}else for(let[_cn,c]of classesByName)collectRegForClass(c);return res;function collectRegForClass(c){for(let f of c.reg.allRegisteredOperations.values())collectRegForFunction(f)}function collectRegForFunction(f){let methodConfig=f.externalRegInfo.get(external),classConfig=f.defaults?.externalRegInfo.get(external),paramConfig=[],hasParamConfig=!1;for(let arg of f.args)arg.externalRegInfo.has(external)&&(hasParamConfig=!0),paramConfig.push({name:arg.name,index:arg.index,paramConfig:arg.externalRegInfo.get(external)});!methodConfig&&!classConfig&&!hasParamConfig||res.push({methodReg:f,methodConfig,classConfig:classConfig??{},paramConfig})}}exports.getRegistrationsForExternal=getRegistrationsForExternal;function ArgName(name){return function(target,propertyKey,parameterIndex){let curParam=getOrCreateMethodArgsRegistration(target,propertyKey)[parameterIndex];curParam.name=name}}exports.ArgName=ArgName})),require_debugpoint=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DEBUG_TRIGGER_INITWF_COMMIT=exports.DEBUG_TRIGGER_STEP_COMMIT=exports.DEBUG_TRIGGER_WORKFLOW_ENQUEUE=exports.DEBUG_TRIGGER_WORKFLOW_QUEUE_START=exports.clearDebugTriggers=exports.setDebugTrigger=exports.debugTriggerPoint=exports.pointLocations=exports.pointTriggers=exports.DebugAction=exports.getCallSiteInfo=void 0;let utils_1=require_utils$3();function getCallSiteInfo(){let stack=Error().stack?.split(`
|
|
129
|
-
`);if(stack&&stack.length>2){let match=stack[2].match(/at\s+(.*):(\d+):(\d+)/);if(match)return{fileName:match[1],lineNumber:parseInt(match[2],10)}}return{fileName:`unknown`,lineNumber:-1}}exports.getCallSiteInfo=getCallSiteInfo,exports.DebugAction=class{sleepms;awaitEvent;callback;asyncCallback},exports.pointTriggers=new Map,exports.pointLocations=new Map;async function debugTriggerPoint(name){let cpi=getCallSiteInfo();if(exports.pointLocations.has(name)||exports.pointLocations.set(name,{name,...cpi,hitCount:0}),exports.pointTriggers.has(name)){let pt=exports.pointTriggers.get(name);pt.sleepms&&await(0,utils_1.sleepms)(pt.sleepms),pt.asyncCallback&&await pt.asyncCallback(),pt.callback&&pt.callback(),pt.awaitEvent&&await pt.awaitEvent}}exports.debugTriggerPoint=debugTriggerPoint;function setDebugTrigger(name,action){exports.pointTriggers.set(name,action)}exports.setDebugTrigger=setDebugTrigger;function clearDebugTriggers(){exports.pointTriggers.clear()}exports.clearDebugTriggers=clearDebugTriggers,exports.DEBUG_TRIGGER_WORKFLOW_QUEUE_START=`DEBUG_TRIGGER_WORKFLOW_QUEUE_START`,exports.DEBUG_TRIGGER_WORKFLOW_ENQUEUE=`DEBUG_TRIGGER_WORKFLOW_ENQUEUE`,exports.DEBUG_TRIGGER_STEP_COMMIT=`DEBUG_TRIGGER_STEP_COMMIT`,exports.DEBUG_TRIGGER_INITWF_COMMIT=`DEBUG_TRIGGER_INITWF_COMMIT`})),require_wfqueue=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.wfQueueRunner=exports.WorkflowQueue=void 0;let dbos_1=require_dbos(),debugpoint_1=require_debugpoint(),utils_1=require_utils$3();exports.WorkflowQueue=class{name;concurrency;rateLimit;workerConcurrency;priorityEnabled=!1;partitionQueue=!1;constructor(name,arg2,rateLimit$1){if(this.name=name,dbos_1.DBOS.isInitialized()&&dbos_1.DBOS.logger.warn(`Workflow queue '${name}' is being created after DBOS initialization and will not be considered for dequeue.`),typeof arg2==`object`&&arg2?(this.concurrency=arg2.concurrency,this.rateLimit=arg2.rateLimit,this.workerConcurrency=arg2.workerConcurrency,this.priorityEnabled=arg2.priorityEnabled??!1,this.partitionQueue=arg2.partitionQueue??!1):(this.concurrency=arg2,this.rateLimit=rateLimit$1),exports.wfQueueRunner.wfQueuesByName.has(name))throw Error(`Workflow Queue '${name}' defined multiple times`);exports.wfQueueRunner.wfQueuesByName.set(name,this)}},exports.wfQueueRunner=new class{wfQueuesByName=new Map;isRunning=!1;interruptResolve;pollingIntervalMs=1e3;minPollingIntervalMs=1e3;maxPollingIntervalMs=12e4;stop(){this.isRunning&&(this.isRunning=!1,this.interruptResolve&&this.interruptResolve())}async dispatchLoop(exec){for(this.isRunning=!0;this.isRunning;){let timer,timeoutPromise=new Promise(resolve=>{timer=setTimeout(()=>{resolve()},this.pollingIntervalMs)});if(await Promise.race([timeoutPromise,new Promise((_,reject)=>this.interruptResolve=reject)]).catch(()=>{exec.logger.debug(`Workflow queue loop interrupted!`)}),clearTimeout(timer),!this.isRunning)break;for(let[_qn,q]of this.wfQueuesByName){let wfids=[];try{if(q.partitionQueue){let partitionKeys=await exec.systemDatabase.getQueuePartitions(q.name);for(let partitionKey of partitionKeys){let partitionWfids=await exec.systemDatabase.findAndMarkStartableWorkflows(q,exec.executorID,utils_1.globalParams.appVersion,partitionKey);wfids.push(...partitionWfids)}}else wfids=await exec.systemDatabase.findAndMarkStartableWorkflows(q,exec.executorID,utils_1.globalParams.appVersion,void 0)}catch(e){let err=e;`code`in err&&(err.code===`40001`||err.code===`55P03`)?(this.pollingIntervalMs=Math.min(this.maxPollingIntervalMs,this.pollingIntervalMs*2),exec.logger.warn(`Contention detected in queue thread for ${q.name}. Increasing polling interval to ${(this.pollingIntervalMs/1e3).toFixed(2)}s.`)):exec.logger.warn(`Error getting startable workflows: ${err.message}`),wfids=[]}wfids.length>0&&await(0,debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_WORKFLOW_QUEUE_START);for(let wfid of wfids)try{await exec.executeWorkflowId(wfid,{isQueueDispatch:!0})}catch(e){exec.logger.warn(`Could not execute workflow with id ${wfid}: ${e.message}`)}}this.pollingIntervalMs=Math.max(this.minPollingIntervalMs,this.pollingIntervalMs*.9)}}logRegisteredEndpoints(exec){let logger=exec.logger;logger.info(`Workflow queues:`);for(let[qn,q]of this.wfQueuesByName){let conc=q.concurrency===void 0?`No concurrency limit set`:`global concurrency limit: ${q.concurrency}`;logger.info(` ${qn}: ${conc}`);let workerconc=q.workerConcurrency===void 0?`No worker concurrency limit set`:`worker concurrency limit: ${q.workerConcurrency}`;logger.info(` ${qn}: ${workerconc}`)}}}})),require_debouncer=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DebouncerClient=exports.Debouncer=exports.debouncerWorkflowFunction=void 0;let node_crypto_1$2=__require(`node:crypto`),_1=require_src$4(),dbos_executor_1=require_dbos_executor(),decorators_1=require_decorators(),error_1=require_error(),utils_1=require_utils$3(),_DEBOUNCER_TOPIC=`DEBOUNCER_TOPIC`;exports.debouncerWorkflowFunction=async(initialDebouncePeriodMs,cfg,...args)=>{let workflowInputs=args,debounceDeadlineEpochMs=cfg.debounceTimeoutMs?Date.now()+cfg.debounceTimeoutMs:Number.MAX_VALUE,debouncePeriodMs=initialDebouncePeriodMs;for(;Date.now()<debounceDeadlineEpochMs;){let timeUntilDeadline=Math.max(debounceDeadlineEpochMs-Date.now(),0),timeoutMs=Math.min(debouncePeriodMs,timeUntilDeadline),message=await _1.DBOS.recv(_DEBOUNCER_TOPIC,timeoutMs/1e3);if(message===null)break;workflowInputs=message.args,debouncePeriodMs=message.debouncePeriodMs,await _1.DBOS.setEvent(message.messageID,message.messageID)}let methReg=(0,decorators_1.getFunctionRegistrationByName)(cfg.workflowClassName,cfg.workflowName);if(!methReg||!methReg.registeredFunction)throw Error(`Invalid workflow name provided to debouncer: ${cfg.workflowName}`);let func=methReg?.registeredFunction;await _1.DBOS.startWorkflow(func,cfg.startWorkflowParams)(...workflowInputs)},exports.Debouncer=class{cfg;constructor(params){this.cfg={workflowName:(0,decorators_1.getFunctionRegistration)(params.workflow)?.name??params.workflow.name,workflowClassName:(0,decorators_1.getRegisteredFunctionClassName)(params.workflow),startWorkflowParams:params.startWorkflowParams,debounceTimeoutMs:params.debounceTimeoutMs}}async debounce(debounceKey,debouncePeriodMs,...args){if(debouncePeriodMs<=0)throw Error(`debouncePeriodMs must be positive, not ${debouncePeriodMs}`);let cfg={...this.cfg};for(cfg.startWorkflowParams=this.cfg.startWorkflowParams?{...this.cfg.startWorkflowParams}:{},cfg.startWorkflowParams.workflowID=cfg.startWorkflowParams.workflowID??await _1.DBOS.randomUUID();;){let deduplicationID=`${cfg.workflowClassName}.${cfg.workflowName}-${debounceKey}`;try{return await _1.DBOS.startWorkflow(dbos_executor_1.DBOSExecutor.debouncerWorkflow,{queueName:utils_1.INTERNAL_QUEUE_NAME,enqueueOptions:{deduplicationID}})(debouncePeriodMs,cfg,...args),_1.DBOS.retrieveWorkflow(cfg.startWorkflowParams.workflowID)}catch(e){if(e instanceof Error&&(0,error_1.getDBOSErrorCode)(e)===error_1.QueueDedupIDDuplicated){let dedupWorkflowID=await _1.DBOS.runStep(async()=>await dbos_executor_1.DBOSExecutor.globalInstance?.systemDatabase.getDeduplicatedWorkflow(utils_1.INTERNAL_QUEUE_NAME,deduplicationID));if(dedupWorkflowID){let messageID=await _1.DBOS.randomUUID(),message={messageID,args,debouncePeriodMs};if(await _1.DBOS.send(dedupWorkflowID,message,_DEBOUNCER_TOPIC),!await _1.DBOS.getEvent(dedupWorkflowID,messageID,1e3))continue;let userWorkflowID=(await _1.DBOS.retrieveWorkflow(dedupWorkflowID).getWorkflowInputs())[1].startWorkflowParams.workflowID;return _1.DBOS.retrieveWorkflow(userWorkflowID)}else continue}else throw e}}}},exports.DebouncerClient=class{client;cfg;constructor(client,params){this.client=client,this.cfg={workflowName:params.workflowName,workflowClassName:params.workflowClassName||``,startWorkflowParams:params.startWorkflowParams,debounceTimeoutMs:params.debounceTimeoutMs}}async debounce(debounceKey,debouncePeriodMs,...args){if(debouncePeriodMs<=0)throw Error(`debouncePeriodMs must be positive, not ${debouncePeriodMs}`);let cfg={...this.cfg};for(cfg.startWorkflowParams=this.cfg.startWorkflowParams?{...this.cfg.startWorkflowParams}:{},cfg.startWorkflowParams.workflowID=cfg.startWorkflowParams.workflowID??String((0,node_crypto_1$2.randomUUID)());;){let deduplicationID=`${cfg.workflowClassName}.${cfg.workflowName}-${debounceKey}`;try{return await this.client.enqueue({workflowName:utils_1.DEBOUNCER_WORKLOW_NAME,queueName:utils_1.INTERNAL_QUEUE_NAME,deduplicationID},debouncePeriodMs,cfg,...args),this.client.retrieveWorkflow(cfg.startWorkflowParams.workflowID)}catch(e){if(e instanceof Error&&(0,error_1.getDBOSErrorCode)(e)===error_1.QueueDedupIDDuplicated){let dedupWorkflowID=await this.client.systemDatabase.getDeduplicatedWorkflow(utils_1.INTERNAL_QUEUE_NAME,deduplicationID);if(dedupWorkflowID){let messageID=String((0,node_crypto_1$2.randomUUID)()),message={messageID,args,debouncePeriodMs};if(await this.client.send(dedupWorkflowID,message,_DEBOUNCER_TOPIC),!await this.client.getEvent(dedupWorkflowID,messageID,1e3))continue;let userWorkflowID=(await this.client.retrieveWorkflow(dedupWorkflowID).getWorkflowInputs())[1].startWorkflowParams.workflowID;return this.client.retrieveWorkflow(userWorkflowID)}else continue}else throw e}}}}})),require_src$4=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MethodParameter=exports.ConfiguredInstance=exports.DebouncerClient=exports.Debouncer=exports.StatusString=exports.DBOSWorkflowConflictError=exports.Error=exports.WorkflowQueue=exports.ArgName=exports.DBOSDataType=exports.SchedulerMode=exports.DBOSClient=exports.DBOS=void 0;var dbos_1=require_dbos();Object.defineProperty(exports,`DBOS`,{enumerable:!0,get:function(){return dbos_1.DBOS}});var client_1=require_client();Object.defineProperty(exports,`DBOSClient`,{enumerable:!0,get:function(){return client_1.DBOSClient}});var scheduler_1=require_scheduler();Object.defineProperty(exports,`SchedulerMode`,{enumerable:!0,get:function(){return scheduler_1.SchedulerMode}});var decorators_1=require_decorators();Object.defineProperty(exports,`DBOSDataType`,{enumerable:!0,get:function(){return decorators_1.DBOSDataType}}),Object.defineProperty(exports,`ArgName`,{enumerable:!0,get:function(){return decorators_1.ArgName}});var wfqueue_1=require_wfqueue();Object.defineProperty(exports,`WorkflowQueue`,{enumerable:!0,get:function(){return wfqueue_1.WorkflowQueue}}),exports.Error=__importStar(require_error());var error_1=require_error();Object.defineProperty(exports,`DBOSWorkflowConflictError`,{enumerable:!0,get:function(){return error_1.DBOSWorkflowConflictError}});var workflow_1=require_workflow();Object.defineProperty(exports,`StatusString`,{enumerable:!0,get:function(){return workflow_1.StatusString}});var debouncer_1=require_debouncer();Object.defineProperty(exports,`Debouncer`,{enumerable:!0,get:function(){return debouncer_1.Debouncer}}),Object.defineProperty(exports,`DebouncerClient`,{enumerable:!0,get:function(){return debouncer_1.DebouncerClient}});var decorators_2=require_decorators();Object.defineProperty(exports,`ConfiguredInstance`,{enumerable:!0,get:function(){return decorators_2.ConfiguredInstance}}),Object.defineProperty(exports,`MethodParameter`,{enumerable:!0,get:function(){return decorators_2.MethodParameter}})})),require_crontab=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TimeMatcher=exports.convertExpression=exports.validateCrontab=exports.convertAsterisksToRanges=void 0;function removeExtraSpaces(str){return str.replace(/\s{2,}/g,` `).trim()}function prependSecondExpression(expressions){return expressions.length===5?[`0`].concat(expressions):expressions}let months=[`january`,`february`,`march`,`april`,`may`,`june`,`july`,`august`,`september`,`october`,`november`,`december`],shortMonths=[`jan`,`feb`,`mar`,`apr`,`may`,`jun`,`jul`,`aug`,`sep`,`oct`,`nov`,`dec`];function convertMonthNameI(expression,items){for(let i=0;i<items.length;i++)expression=expression.replace(new RegExp(items[i],`gi`),`${i+1}`);return expression}function monthNamesConversion(monthExpression){return monthExpression=convertMonthNameI(monthExpression,months),monthExpression=convertMonthNameI(monthExpression,shortMonths),monthExpression}let weekDays=[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`],shortWeekDays=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`];function convertWeekDayName(weekExpression,items){for(let i=0;i<items.length;i++)weekExpression=weekExpression.replace(new RegExp(items[i],`gi`),`${i}`);return weekExpression}function weekDayNamesConversion(expression){return expression=expression.replace(`7`,`0`),expression=convertWeekDayName(expression,weekDays),convertWeekDayName(expression,shortWeekDays)}function convertAsterisk(expression,replacement){return expression.indexOf(`*`)===-1?expression:expression.replace(`*`,replacement)}function convertAsterisksToRanges(expressions){return expressions[0]=convertAsterisk(expressions[0],`0-59`),expressions[1]=convertAsterisk(expressions[1],`0-59`),expressions[2]=convertAsterisk(expressions[2],`0-23`),expressions[3]=convertAsterisk(expressions[3],`1-31`),expressions[4]=convertAsterisk(expressions[4],`1-12`),expressions[5]=convertAsterisk(expressions[5],`0-6`),expressions}exports.convertAsterisksToRanges=convertAsterisksToRanges;function replaceWithRange(expression,text,init,end){let numbers=[],last=parseInt(end),first=parseInt(init);first>last&&(last=parseInt(init),first=parseInt(end));for(let i=first;i<=last;i++)numbers.push(i.toString());return expression.replace(new RegExp(text,`i`),numbers.join())}function convertRange(expression){let rangeRegEx=/(\d+)-(\d+)/,match=rangeRegEx.exec(expression);for(;match!==null&&match.length>0;)expression=replaceWithRange(expression,match[0],match[1],match[2]),match=rangeRegEx.exec(expression);return expression}function convertAllRanges(expressions){for(let i=0;i<expressions.length;i++)expressions[i]=convertRange(expressions[i]);return expressions}function convertSteps(expressions){let stepValuePattern=/^(.+)\/(\w+)$/;for(let i=0;i<expressions.length;i++){let match=stepValuePattern.exec(expressions[i]);if(match!==null&&match.length>0){let baseDivider=match[2];if(isNaN(parseInt(baseDivider)))throw Error(baseDivider+` is not a valid step value`);let values=match[1].split(`,`),stepValues=[],divider=parseInt(baseDivider,10);for(let j=0;j<=values.length;j++){let value=parseInt(values[j],10);value%divider===0&&stepValues.push(`${value}`)}expressions[i]=stepValues.join(`,`)}}return expressions}function normalizeIntegers(expressions){for(let i=0;i<expressions.length;i++){let numbers=expressions[i].split(`,`);for(let j=0;j<numbers.length;j++)numbers[j]=parseInt(numbers[j]).toString();expressions[i]=numbers.join(`,`)}return expressions}let validationRegex=/^(?:\d+|\*|\*\/\d+)$/;function isValidExpression(expression,min,max){let options=expression.split(`,`);for(let option of options){let optionAsInt=parseInt(option,10);if(!Number.isNaN(optionAsInt)&&(optionAsInt<min||optionAsInt>max)||!validationRegex.test(option))return!1}return!0}function isInvalidSecond(expression){return!isValidExpression(expression,0,59)}function isInvalidMinute(expression){return!isValidExpression(expression,0,59)}function isInvalidHour(expression){return!isValidExpression(expression,0,23)}function isInvalidDayOfMonth(expression){return!isValidExpression(expression,1,31)}function isInvalidMonth(expression){return!isValidExpression(expression,1,12)}function isInvalidWeekDay(expression){return!isValidExpression(expression,0,7)}function validateFields(patterns,executablePatterns){if(isInvalidSecond(executablePatterns[0]))throw Error(`${patterns[0]} is a invalid expression for second`);if(isInvalidMinute(executablePatterns[1]))throw Error(`${patterns[1]} is a invalid expression for minute`);if(isInvalidHour(executablePatterns[2]))throw Error(`${patterns[2]} is a invalid expression for hour`);if(isInvalidDayOfMonth(executablePatterns[3]))throw Error(`${patterns[3]} is a invalid expression for day of month`);if(isInvalidMonth(executablePatterns[4]))throw Error(`${patterns[4]} is a invalid expression for month`);if(isInvalidWeekDay(executablePatterns[5]))throw Error(`${patterns[5]} is a invalid expression for week day`)}function validateCrontab(pattern){if(typeof pattern!=`string`)throw TypeError(`pattern must be a string!`);let patterns=pattern.split(` `),executablePatterns=convertExpression(pattern).split(` `);return patterns.length===5&&patterns.unshift(`0`),validateFields(patterns,executablePatterns),executablePatterns.join(` `)}exports.validateCrontab=validateCrontab;function convertExpression(crontab){let expressions=removeExtraSpaces(crontab).split(` `);return expressions=prependSecondExpression(expressions),expressions[4]=monthNamesConversion(expressions[4]),expressions[5]=weekDayNamesConversion(expressions[5]),expressions=convertAsterisksToRanges(expressions),expressions=convertAllRanges(expressions),expressions=convertSteps(expressions),expressions=normalizeIntegers(expressions),expressions.join(` `)}exports.convertExpression=convertExpression;function matchPattern(pattern,nvalue){let value=`${nvalue}`;return pattern.indexOf(`,`)===-1?pattern===value:pattern.split(`,`).includes(value)}exports.TimeMatcher=class{#e;#t;#n;#r;constructor(pattern,timezone){validateCrontab(pattern),this.#e=convertExpression(pattern),this.#r=timezone,this.#t=this.#e.split(` `),this.#n=this.#r?new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`,fractionalSecondDigits:3,timeZone:this.#r}):null}match(date){date=this.#a(date);let runOnSecond=matchPattern(this.#t[0],date.getSeconds()),runOnMinute=matchPattern(this.#t[1],date.getMinutes()),runOnHour=matchPattern(this.#t[2],date.getHours()),runOnDay=this.#i(date);return runOnSecond&&runOnMinute&&runOnHour&&runOnDay}#i(date){let runOnDay=matchPattern(this.#t[3],date.getDate()),runOnMonth=matchPattern(this.#t[4],date.getMonth()+1),runOnWeekDay=matchPattern(this.#t[5],date.getDay());return runOnDay&&runOnMonth&&runOnWeekDay}nextWakeupTime(date){let time=typeof date==`number`?date:date.getTime(),msec=Math.round(time);for(let maxIters=3600;--maxIters;){msec+=1e3;let nd=new Date(msec);if(this.match(nd))return nd}return new Date(msec)}#a(date){return this.#n?new Date(this.#n.format(date)):typeof date==`number`?new Date(date):date}}})),require_scheduler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ScheduledReceiver=exports.SchedulerMode=void 0;let __1=require_src$4(),utils_1=require_utils$3(),crontab_1=require_crontab();var SchedulerMode;(function(SchedulerMode){SchedulerMode.ExactlyOncePerInterval=`ExactlyOncePerInterval`,SchedulerMode.ExactlyOncePerIntervalWhenActive=`ExactlyOncePerIntervalWhenActive`})(SchedulerMode||(exports.SchedulerMode=SchedulerMode={}));let SCHEDULER_EVENT_SERVICE_NAME=`dbos.scheduler`;exports.ScheduledReceiver=class ScheduledReceiver{#e=new AbortController;#t=[];constructor(){__1.DBOS.registerLifecycleCallback(this)}async initialize(){for(let regOp of __1.DBOS.getAssociatedInfo(SCHEDULER_EVENT_SERVICE_NAME)){if(regOp.methodReg.registeredFunction===void 0){__1.DBOS.logger.warn(`Scheduled workflow ${regOp.methodReg.className}.${regOp.methodReg.name} is missing registered function; skipping`);continue}let{crontab,mode,queueName}=regOp.methodConfig;if(!crontab){__1.DBOS.logger.warn(`Scheduled workflow ${regOp.methodReg.className}.${regOp.methodReg.name} is missing crontab; skipping`);continue}let timeMatcher=new crontab_1.TimeMatcher(crontab),promise=ScheduledReceiver.#n(regOp.methodReg,timeMatcher,mode??SchedulerMode.ExactlyOncePerIntervalWhenActive,queueName,this.#e.signal);this.#t.push(promise)}}async destroy(){this.#e.abort();let promises=this.#t.splice(0);await Promise.allSettled(promises)}logRegisteredEndpoints(){__1.DBOS.logger.info(`Scheduled endpoints:`);for(let regOp of __1.DBOS.getAssociatedInfo(SCHEDULER_EVENT_SERVICE_NAME)){let name=`${regOp.methodReg.className}.${regOp.methodReg.name}`,{crontab,mode}=regOp.methodConfig;crontab?__1.DBOS.logger.info(` ${name} @ ${crontab}; ${mode??SchedulerMode.ExactlyOncePerIntervalWhenActive}`):__1.DBOS.logger.info(` ${name} is missing crontab; skipping`)}}static async#n(methodReg,timeMatcher,mode,queueName,signal){let name=`${methodReg.className}.${methodReg.name}`,lastExec=new Date().setMilliseconds(0);if(mode===SchedulerMode.ExactlyOncePerInterval){let lastState=await __1.DBOS.getEventDispatchState(SCHEDULER_EVENT_SERVICE_NAME,name,`lastState`);lastState?.value&&(lastExec=parseFloat(lastState.value))}for(;!signal.aborted;){let nextExec=timeMatcher.nextWakeupTime(lastExec).getTime(),sleepTime=nextExec-Date.now();if(sleepTime>0&&await new Promise((resolve,reject)=>{let timeoutID,onAbort=()=>{clearTimeout(timeoutID),reject(Error(`Abort signal received`))};signal.addEventListener(`abort`,onAbort,{once:!0}),signal.aborted&&(signal.removeEventListener(`abort`,onAbort),reject(Error(`Abort signal received`))),timeoutID=setTimeout(()=>{signal.removeEventListener(`abort`,onAbort),resolve()},sleepTime)}),signal.aborted)break;if(!timeMatcher.match(nextExec)){lastExec=nextExec;continue}let date=new Date(nextExec);if(methodReg.workflowConfig&&methodReg.registeredFunction){let workflowID=`sched-${name}-${date.toISOString()}`,wfParams={workflowID,queueName:queueName??utils_1.INTERNAL_QUEUE_NAME};__1.DBOS.logger.debug(`Executing scheduled workflow ${workflowID}`),await __1.DBOS.startWorkflow(methodReg.registeredFunction,wfParams)(date,new Date)}else __1.DBOS.logger.error(`${name} is @scheduled but not a workflow`);lastExec=await ScheduledReceiver.#r(name,nextExec)}}static async#r(name,time){try{let state={service:SCHEDULER_EVENT_SERVICE_NAME,workflowFnName:name,key:`lastState`,value:`${time}`,updateTime:time},newState=await __1.DBOS.upsertEventDispatchState(state),dbTime=parseFloat(newState.value);if(dbTime&&dbTime>time)return dbTime}catch(e){let err=e;__1.DBOS.logger.warn(`Scheduler caught an error writing to system DB: ${err.message}`),__1.DBOS.logger.error(e)}return time}static registerScheduled(func,config){let{regInfo}=__1.DBOS.associateFunctionWithInfo(SCHEDULER_EVENT_SERVICE_NAME,func,{ctorOrProto:config.ctorOrProto,className:config.className,name:config.name??func.name}),schedRegInfo=regInfo;schedRegInfo.crontab=config.crontab,schedRegInfo.mode=config.mode,schedRegInfo.queueName=config.queueName}}})),require_protocol=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.GetMetricsResponse=exports.MetricDataOutput=exports.GetMetricsRequest=exports.RetentionResponse=exports.RetentionRequest=exports.ForkWorkflowResponse=exports.ForkWorkflowRequest=exports.ListStepsResponse=exports.ListStepsRequest=exports.ExistPendingWorkflowsResponse=exports.ExistPendingWorkflowsRequest=exports.GetWorkflowResponse=exports.GetWorkflowRequest=exports.ListQueuedWorkflowsResponse=exports.ListQueuedWorkflowsRequest=exports.ListWorkflowsResponse=exports.ListWorkflowsRequest=exports.WorkflowSteps=exports.WorkflowsOutput=exports.RestartResponse=exports.RestartRequest=exports.ResumeResponse=exports.ResumeRequest=exports.CancelResponse=exports.CancelRequest=exports.RecoveryResponse=exports.RecoveryRequest=exports.ExecutorInfoResponse=exports.BaseResponse=exports.MessageType=void 0;let serialize_error_1=require_serialize_error();var MessageType;(function(MessageType){MessageType.EXECUTOR_INFO=`executor_info`,MessageType.RECOVERY=`recovery`,MessageType.CANCEL=`cancel`,MessageType.LIST_WORKFLOWS=`list_workflows`,MessageType.LIST_QUEUED_WORKFLOWS=`list_queued_workflows`,MessageType.RESUME=`resume`,MessageType.RESTART=`restart`,MessageType.GET_WORKFLOW=`get_workflow`,MessageType.EXIST_PENDING_WORKFLOWS=`exist_pending_workflows`,MessageType.LIST_STEPS=`list_steps`,MessageType.FORK_WORKFLOW=`fork_workflow`,MessageType.RETENTION=`retention`,MessageType.GET_METRICS=`get_metrics`})(MessageType||(exports.MessageType=MessageType={}));var BaseResponse=class{type;request_id;error_message;constructor(type,request_id,error_message){this.type=type,this.request_id=request_id,this.error_message=error_message}};exports.BaseResponse=BaseResponse,exports.ExecutorInfoResponse=class extends BaseResponse{executor_id;application_version;hostname;language;dbos_version;constructor(request_id,executor_id,application_version,hostname,language,dbos_version,error_message){super(MessageType.EXECUTOR_INFO,request_id,error_message),this.executor_id=executor_id,this.application_version=application_version,this.hostname=hostname,this.language=language,this.dbos_version=dbos_version}},exports.RecoveryRequest=class{type=MessageType.RECOVERY;request_id;executor_ids;constructor(request_id,executor_ids){this.request_id=request_id,this.executor_ids=executor_ids}},exports.RecoveryResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RECOVERY,request_id,error_message),this.success=success}},exports.CancelRequest=class{type=MessageType.CANCEL;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.CancelResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.CANCEL,request_id,error_message),this.success=success}},exports.ResumeRequest=class{type=MessageType.RESUME;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.ResumeResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RESUME,request_id,error_message),this.success=success}},exports.RestartRequest=class{type=MessageType.RESTART;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.RestartResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RESTART,request_id,error_message),this.success=success}},exports.WorkflowsOutput=class{WorkflowUUID;Status;WorkflowName;WorkflowClassName;WorkflowConfigName;AuthenticatedUser;AssumedRole;AuthenticatedRoles;Input;Output;Request;Error;CreatedAt;UpdatedAt;QueueName;ApplicationVersion;ExecutorID;WorkflowTimeoutMS;WorkflowDeadlineEpochMS;DeduplicationID;Priority;QueuePartitionKey;ForkedFrom;constructor(info){this.WorkflowUUID=info.workflowID,this.Status=info.status,this.WorkflowName=info.workflowName,this.WorkflowClassName=info.workflowClassName?info.workflowClassName:void 0,this.WorkflowConfigName=info.workflowConfigName?info.workflowConfigName:void 0,this.AuthenticatedUser=info.authenticatedUser?info.authenticatedUser:void 0,this.AssumedRole=info.assumedRole?info.assumedRole:void 0,this.AuthenticatedRoles=(info.authenticatedRoles??[]).length>0?JSON.stringify(info.authenticatedRoles):void 0,this.Input=info.input?JSON.stringify(info.input):void 0,this.Output=info.output?JSON.stringify(info.output):void 0,this.Request=info.request?JSON.stringify(info.request):void 0,this.Error=info.error?JSON.stringify((0,serialize_error_1.serializeError)(info.error)):void 0,this.CreatedAt=info.createdAt?String(info.createdAt):void 0,this.UpdatedAt=info.updatedAt?String(info.updatedAt):void 0,this.QueueName=info.queueName?info.queueName:void 0,this.ApplicationVersion=info.applicationVersion,this.ExecutorID=info.executorId,this.WorkflowTimeoutMS=info.timeoutMS===void 0?void 0:String(info.timeoutMS),this.WorkflowDeadlineEpochMS=info.deadlineEpochMS===void 0?void 0:String(info.deadlineEpochMS),this.DeduplicationID=info.deduplicationID,this.Priority=String(info.priority),this.QueuePartitionKey=info.queuePartitionKey,this.ForkedFrom=info.forkedFrom}},exports.WorkflowSteps=class{function_id;function_name;output;error;child_workflow_id;started_at_epoch_ms;completed_at_epoch_ms;constructor(info){this.function_id=info.functionID,this.function_name=info.name,this.output=info.output?JSON.stringify(info.output):void 0,this.error=info.error?JSON.stringify((0,serialize_error_1.serializeError)(info.error)):void 0,this.child_workflow_id=info.childWorkflowID??void 0,this.started_at_epoch_ms=info.startedAtEpochMs===void 0?void 0:String(info.startedAtEpochMs),this.completed_at_epoch_ms=info.completedAtEpochMs===void 0?void 0:String(info.completedAtEpochMs)}},exports.ListWorkflowsRequest=class{type=MessageType.LIST_WORKFLOWS;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.ListWorkflowsResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.LIST_WORKFLOWS,request_id,error_message),this.output=output}},exports.ListQueuedWorkflowsRequest=class{type=MessageType.LIST_QUEUED_WORKFLOWS;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.ListQueuedWorkflowsResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.LIST_QUEUED_WORKFLOWS,request_id,error_message),this.output=output}},exports.GetWorkflowRequest=class{type=MessageType.GET_WORKFLOW;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.GetWorkflowResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.GET_WORKFLOW,request_id,error_message),this.output=output}},exports.ExistPendingWorkflowsRequest=class{type=MessageType.EXIST_PENDING_WORKFLOWS;request_id;executor_id;application_version;constructor(request_id,executor_id,application_version){this.request_id=request_id,this.executor_id=executor_id,this.application_version=application_version}},exports.ExistPendingWorkflowsResponse=class extends BaseResponse{exist;constructor(request_id,exist,error_message){super(MessageType.EXIST_PENDING_WORKFLOWS,request_id,error_message),this.exist=exist}},exports.ListStepsRequest=class{type=MessageType.LIST_STEPS;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.ListStepsResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.LIST_STEPS,request_id,error_message),this.output=output}},exports.ForkWorkflowRequest=class{type=MessageType.FORK_WORKFLOW;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.ForkWorkflowResponse=class extends BaseResponse{new_workflow_id;constructor(request_id,new_workflow_id,error_message){super(MessageType.FORK_WORKFLOW,request_id,error_message),this.new_workflow_id=new_workflow_id}},exports.RetentionRequest=class{type=MessageType.RETENTION;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.RetentionResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RETENTION,request_id,error_message),this.success=success}},exports.GetMetricsRequest=class{type=MessageType.GET_METRICS;request_id;start_time;end_time;metric_class;constructor(request_id,start_time,end_time,metric_class){this.request_id=request_id,this.start_time=start_time,this.end_time=end_time,this.metric_class=metric_class}},exports.MetricDataOutput=class{metric_type;metric_name;value;constructor(metric_type,metric_name,value){this.metric_type=metric_type,this.metric_name=metric_name,this.value=value}},exports.GetMetricsResponse=class extends BaseResponse{metrics;constructor(request_id,metrics,error_message){super(MessageType.GET_METRICS,request_id,error_message),this.metrics=metrics}}})),require_adminserver=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOSAdminServer=exports.WorkflowQueuesMetadataUrl=exports.DeactivateUrl=exports.PerfUrl=exports.HealthUrl=exports.WorkflowRecoveryUrl=exports.WorkflowUUIDHeader=void 0;let http$2=__importStar(__require(`http`)),url=__importStar(__require(`url`)),error_1=require_error(),net$1=__importStar(__require(`net`)),perf_hooks_1=__require(`perf_hooks`),utils_1=require_utils$3(),wfqueue_1=require_wfqueue(),workflow_management_1=require_workflow_management(),protocol=__importStar(require_protocol());exports.WorkflowUUIDHeader=`dbos-idempotency-key`,exports.WorkflowRecoveryUrl=`/dbos-workflow-recovery`,exports.HealthUrl=`/dbos-healthz`,exports.PerfUrl=`/dbos-perf`,exports.DeactivateUrl=`/deactivate`,exports.WorkflowQueuesMetadataUrl=`/dbos-workflow-queues-metadata`;async function parseJsonBody(req){return new Promise((resolve,reject)=>{let body=``;req.on(`data`,chunk=>{body+=String(chunk)}),req.on(`end`,()=>{try{resolve(body?JSON.parse(body):{})}catch{reject(Error(`Invalid JSON`))}}),req.on(`error`,reject)})}function sendJson(res,statusCode,data){res.writeHead(statusCode,{"Content-Type":`application/json`,"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`}),res.end(JSON.stringify(data))}function sendText(res,statusCode,text){res.writeHead(statusCode,{"Content-Type":`text/plain`,"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`}),res.end(text)}function sendNoContent(res){res.writeHead(204,{"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`}),res.end()}function matchPath(pattern,pathname){let patternParts=pattern.split(`/`),pathParts=pathname.split(`/`);if(patternParts.length!==pathParts.length)return null;let params={};for(let i=0;i<patternParts.length;i++){let patternPart=patternParts[i],pathPart=pathParts[i];if(patternPart.startsWith(`:`)){let paramName=patternPart.substring(1);params[paramName]=pathPart}else if(patternPart!==pathPart)return null}return params}exports.DBOSAdminServer=class DBOSAdminServer{static setupAdminApp(dbosExec){let routes=[];return DBOSAdminServer.registerHealthEndpoint(dbosExec,routes),DBOSAdminServer.registerRecoveryEndpoint(dbosExec,routes),DBOSAdminServer.registerPerfEndpoint(dbosExec,routes),DBOSAdminServer.registerDeactivateEndpoint(dbosExec,routes),DBOSAdminServer.registerCancelWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerResumeWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerRestartWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerQueueMetadataEndpoint(dbosExec,routes),DBOSAdminServer.registerListWorkflowStepsEndpoint(dbosExec,routes),DBOSAdminServer.registerListWorkflowsEndpoint(dbosExec,routes),DBOSAdminServer.registerListQueuedWorkflowsEndpoint(dbosExec,routes),DBOSAdminServer.registerGetWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerForkWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerGarbageCollectEndpoint(dbosExec,routes),DBOSAdminServer.registerGlobalTimeoutEndpoint(dbosExec,routes),http$2.createServer(async(req,res)=>{if(req.method===`OPTIONS`){res.writeHead(200,{"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`,"Access-Control-Max-Age":`86400`}),res.end();return}let pathname=url.parse(req.url||``,!0).pathname||``,routeFound=!1;for(let route of routes)if(req.method===route.method){let params=matchPath(route.path,pathname);if(params!==null){routeFound=!0;try{await route.handler(req,res,params)}catch(error){dbosExec.logger.error(`Request handler error: ${String(error)}`),sendJson(res,500,{error:`Internal server error`})}break}}routeFound||(res.writeHead(404,{"Content-Type":`text/plain`}),res.end(`Not Found`))})}static async checkPortAvailabilityIPv4Ipv6(port,logger){try{await this.checkPortAvailability(port,`127.0.0.1`)}catch(error){let err=error;if(err.code===`EADDRINUSE`)throw logger.warn(`Port ${port} is already used for IPv4 address "127.0.0.1". Please use the -p option to choose another port.\n${err.message}`),error;logger.warn(`Error occurred while checking port availability for IPv4 address "127.0.0.1" : ${err.code}\n${err.message}`)}try{await this.checkPortAvailability(port,`::1`)}catch(error){let err=error;if(err.code===`EADDRINUSE`)throw logger.warn(`Port ${port} is already used for IPv6 address "::1". Please use the -p option to choose another port.\n${err.message}`),error;logger.warn(`Error occurred while checking port availability for IPv6 address "::1" : ${err.code}\n${err.message}`)}}static async checkPortAvailability(port,host){return new Promise((resolve,reject)=>{let server=new net$1.Server;server.on(`error`,error=>{reject(error)}),server.on(`listening`,()=>{server.close(),resolve()}),server.listen({port,host},()=>{resolve()})})}static registerHealthEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.HealthUrl,handler:async(req,res)=>(sendText(res,200,`healthy`),Promise.resolve())}),dbosExec.logger.debug(`DBOS Server Registered Healthz GET ${exports.HealthUrl}`)}static registerQueueMetadataEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.WorkflowQueuesMetadataUrl,handler:async(req,res)=>{let queueDetailsArray=[];return wfqueue_1.wfQueueRunner.wfQueuesByName.forEach((q,qn)=>{queueDetailsArray.push({name:qn,concurrency:q.concurrency,workerConcurrency:q.workerConcurrency,rateLimit:q.rateLimit})}),sendJson(res,200,queueDetailsArray),Promise.resolve()}}),dbosExec.logger.debug(`DBOS Server Registered Queue Metadata GET ${exports.WorkflowQueuesMetadataUrl}`)}static registerRecoveryEndpoint(dbosExec,routes){routes.push({method:`POST`,path:exports.WorkflowRecoveryUrl,handler:async(req,res)=>{let executorIDs=await parseJsonBody(req);dbosExec.logger.info(`Recovering workflows for executors: `+executorIDs.toString());let recoverHandles=await dbosExec.recoverPendingWorkflows(executorIDs);sendJson(res,200,await Promise.allSettled(recoverHandles.map(i=>i.workflowID)).then(results=>results.filter(i=>i.status===`fulfilled`).map(i=>i.value)))}}),dbosExec.logger.debug(`DBOS Server Registered Recovery POST ${exports.WorkflowRecoveryUrl}`)}static lastELU=perf_hooks_1.performance.eventLoopUtilization();static registerPerfEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.PerfUrl,handler:async(req,res)=>{let currELU=perf_hooks_1.performance.eventLoopUtilization();return sendJson(res,200,perf_hooks_1.performance.eventLoopUtilization(currELU,DBOSAdminServer.lastELU)),DBOSAdminServer.lastELU=currELU,Promise.resolve()}}),dbosExec.logger.debug(`DBOS Server Registered Perf GET ${exports.PerfUrl}`)}static isDeactivated=!1;static registerDeactivateEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.DeactivateUrl,handler:async(req,res)=>{DBOSAdminServer.isDeactivated||=(dbosExec.logger.info(`Deactivating DBOS executor ${utils_1.globalParams.executorID} with version ${utils_1.globalParams.appVersion}. This executor will complete existing workflows but will not create new workflows.`),!0),await dbosExec.deactivateEventReceivers(!1),sendText(res,200,`Deactivated`)}}),dbosExec.logger.debug(`DBOS Server Registered Deactivate GET ${exports.DeactivateUrl}`)}static registerGarbageCollectEndpoint(dbosExec,routes){routes.push({method:`POST`,path:`/dbos-garbage-collect`,handler:async(req,res)=>{let body=await parseJsonBody(req);await dbosExec.systemDatabase.garbageCollect(body.cutoff_epoch_timestamp_ms,body.rows_threshold),sendNoContent(res)}})}static registerGlobalTimeoutEndpoint(dbosExec,routes){routes.push({method:`POST`,path:`/dbos-global-timeout`,handler:async(req,res)=>{let body=await parseJsonBody(req);await(0,workflow_management_1.globalTimeout)(dbosExec.systemDatabase,body.cutoff_epoch_timestamp_ms),sendNoContent(res)}})}static registerCancelWorkflowEndpoint(dbosExec,routes){let workflowCancelUrl=`/workflows/:workflow_id/cancel`;routes.push({method:`POST`,path:workflowCancelUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id;await dbosExec.cancelWorkflow(workflowId),sendNoContent(res)}}),dbosExec.logger.debug(`DBOS Server Registered Cancel Workflow POST ${workflowCancelUrl}`)}static registerResumeWorkflowEndpoint(dbosExec,routes){let workflowResumeUrl=`/workflows/:workflow_id/resume`;routes.push({method:`POST`,path:workflowResumeUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id;dbosExec.logger.info(`Resuming workflow with ID: ${workflowId}`);try{await dbosExec.resumeWorkflow(workflowId),sendNoContent(res)}catch(e){let errorMessage=``;errorMessage=e instanceof error_1.DBOSError?e.message:`Unknown error`,dbosExec.logger.error(`Error resuming workflow ${workflowId}: ${errorMessage}`),sendJson(res,500,{error:`Error resuming workflow ${workflowId}: ${errorMessage}`})}}}),dbosExec.logger.debug(`DBOS Server Registered Resume Workflow POST ${workflowResumeUrl}`)}static registerRestartWorkflowEndpoint(dbosExec,routes){let workflowRestartUrl=`/workflows/:workflow_id/restart`;routes.push({method:`POST`,path:workflowRestartUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id;dbosExec.logger.info(`Restarting workflow: ${workflowId} with a new id`),sendJson(res,200,{workflow_id:await dbosExec.forkWorkflow(workflowId,0)})}}),dbosExec.logger.debug(`DBOS Server Registered Restart Workflow POST ${workflowRestartUrl}`)}static registerForkWorkflowEndpoint(dbosExec,routes){let workflowForkUrl=`/workflows/:workflow_id/fork`;routes.push({method:`POST`,path:workflowForkUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id,body=await parseJsonBody(req);if(body.start_step===void 0){sendJson(res,400,{error:`Missing start_step in request body`});return}dbosExec.logger.info(`Forking workflow: ${workflowId} from step ${body.start_step} with a new id`);try{sendJson(res,200,{workflow_id:await dbosExec.forkWorkflow(workflowId,body.start_step,{newWorkflowID:body.new_workflow_id,applicationVersion:body.application_version,timeoutMS:body.timeout_ms})})}catch(e){let errorMessage=``;errorMessage=e instanceof error_1.DBOSError?e.message:`Unknown error`,dbosExec.logger.error(`Error forking workflow ${workflowId}: ${errorMessage}`),sendJson(res,500,{error:`Error forking workflow ${workflowId}: ${errorMessage}`})}}}),dbosExec.logger.debug(`DBOS Server Registered Fork Workflow POST ${workflowForkUrl}`)}static registerListWorkflowStepsEndpoint(dbosExec,routes){let workflowStepsUrl=`/workflows/:workflow_id/steps`;routes.push({method:`GET`,path:workflowStepsUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id,result=(await dbosExec.listWorkflowSteps(workflowId))?.map(step=>new protocol.WorkflowSteps(step));sendJson(res,200,result)}}),dbosExec.logger.debug(`DBOS Server Registered List Workflow steps Get ${workflowStepsUrl}`)}static registerListWorkflowsEndpoint(dbosExec,routes){let listWorkflowsUrl=`/workflows`;routes.push({method:`POST`,path:listWorkflowsUrl,handler:async(req,res)=>{let body=await parseJsonBody(req),input={workflowIDs:body.workflow_uuids,workflowName:body.workflow_name,authenticatedUser:body.authenticated_user,startTime:body.start_time,endTime:body.end_time,status:body.status,applicationVersion:body.application_version,forkedFrom:body.fork_from,limit:body.limit,offset:body.offset,sortDesc:body.sort_desc,workflow_id_prefix:body.workflow_id_prefix,loadInput:body.load_input??!1,loadOutput:body.load_output??!1};sendJson(res,200,(await dbosExec.listWorkflows(input)).map(wf=>new protocol.WorkflowsOutput(wf)))}}),dbosExec.logger.debug(`DBOS Server Registered List Workflows POST ${listWorkflowsUrl}`)}static registerListQueuedWorkflowsEndpoint(dbosExec,routes){let listQueuedWorkflowsUrl=`/queues`;routes.push({method:`POST`,path:listQueuedWorkflowsUrl,handler:async(req,res)=>{let body=await parseJsonBody(req),input={workflowName:body.workflow_name,startTime:body.start_time,endTime:body.end_time,status:body.status,forkedFrom:body.fork_from,queueName:body.queue_name,limit:body.limit,offset:body.offset,sortDesc:body.sort_desc,loadInput:body.load_input??!1};sendJson(res,200,(await dbosExec.listQueuedWorkflows(input)).map(wf=>new protocol.WorkflowsOutput(wf)))}}),dbosExec.logger.debug(`DBOS Server Registered List Queued Workflows POST ${listQueuedWorkflowsUrl}`)}static registerGetWorkflowEndpoint(dbosExec,routes){let getWorkflowUrl=`/workflows/:workflow_id`;routes.push({method:`GET`,path:getWorkflowUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id,workflow=await dbosExec.getWorkflowStatus(workflowId);workflow?sendJson(res,200,new protocol.WorkflowsOutput(workflow)):sendJson(res,404,{error:`Workflow ${workflowId} not found`})}}),dbosExec.logger.debug(`DBOS Server Registered Get Workflow GET ${getWorkflowUrl}`)}}})),require_constants=__commonJSMin(((exports,module)=>{let BINARY_TYPES=[`nodebuffer`,`arraybuffer`,`fragments`],hasBlob=typeof Blob<`u`;hasBlob&&BINARY_TYPES.push(`blob`),module.exports={BINARY_TYPES,EMPTY_BUFFER:Buffer.alloc(0),GUID:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,hasBlob,kForOnEventAttribute:Symbol(`kIsForOnEventAttribute`),kListener:Symbol(`kListener`),kStatusCode:Symbol(`status-code`),kWebSocket:Symbol(`websocket`),NOOP:()=>{}}})),require_buffer_util=__commonJSMin(((exports,module)=>{let{EMPTY_BUFFER}=require_constants(),FastBuffer=Buffer[Symbol.species];function concat(list,totalLength){if(list.length===0)return EMPTY_BUFFER;if(list.length===1)return list[0];let target=Buffer.allocUnsafe(totalLength),offset=0;for(let i=0;i<list.length;i++){let buf=list[i];target.set(buf,offset),offset+=buf.length}return offset<totalLength?new FastBuffer(target.buffer,target.byteOffset,offset):target}function _mask(source,mask,output,offset,length){for(let i=0;i<length;i++)output[offset+i]=source[i]^mask[i&3]}function _unmask(buffer,mask){for(let i=0;i<buffer.length;i++)buffer[i]^=mask[i&3]}function toArrayBuffer(buf){return buf.length===buf.buffer.byteLength?buf.buffer:buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.length)}function toBuffer(data){if(toBuffer.readOnly=!0,Buffer.isBuffer(data))return data;let buf;return data instanceof ArrayBuffer?buf=new FastBuffer(data):ArrayBuffer.isView(data)?buf=new FastBuffer(data.buffer,data.byteOffset,data.byteLength):(buf=Buffer.from(data),toBuffer.readOnly=!1),buf}if(module.exports={concat,mask:_mask,toArrayBuffer,toBuffer,unmask:_unmask},!process.env.WS_NO_BUFFER_UTIL)try{let bufferUtil=__require(`bufferutil`);module.exports.mask=function(source,mask,output,offset,length){length<48?_mask(source,mask,output,offset,length):bufferUtil.mask(source,mask,output,offset,length)},module.exports.unmask=function(buffer,mask){buffer.length<32?_unmask(buffer,mask):bufferUtil.unmask(buffer,mask)}}catch{}})),require_limiter=__commonJSMin(((exports,module)=>{let kDone=Symbol(`kDone`),kRun=Symbol(`kRun`);module.exports=class{constructor(concurrency){this[kDone]=()=>{this.pending--,this[kRun]()},this.concurrency=concurrency||1/0,this.jobs=[],this.pending=0}add(job){this.jobs.push(job),this[kRun]()}[kRun](){if(this.pending!==this.concurrency&&this.jobs.length){let job=this.jobs.shift();this.pending++,job(this[kDone])}}}})),require_permessage_deflate=__commonJSMin(((exports,module)=>{let zlib$1=__require(`zlib`),bufferUtil=require_buffer_util(),Limiter=require_limiter(),{kStatusCode}=require_constants(),FastBuffer=Buffer[Symbol.species],TRAILER=Buffer.from([0,0,255,255]),kPerMessageDeflate=Symbol(`permessage-deflate`),kTotalLength=Symbol(`total-length`),kCallback=Symbol(`callback`),kBuffers=Symbol(`buffers`),kError=Symbol(`error`),zlibLimiter;module.exports=class{constructor(options,isServer,maxPayload){this._maxPayload=maxPayload|0,this._options=options||{},this._threshold=this._options.threshold===void 0?1024:this._options.threshold,this._isServer=!!isServer,this._deflate=null,this._inflate=null,this.params=null,zlibLimiter||=new Limiter(this._options.concurrencyLimit===void 0?10:this._options.concurrencyLimit)}static get extensionName(){return`permessage-deflate`}offer(){let params={};return this._options.serverNoContextTakeover&&(params.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(params.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(params.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?params.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits??(params.client_max_window_bits=!0),params}accept(configurations){return configurations=this.normalizeParams(configurations),this.params=this._isServer?this.acceptAsServer(configurations):this.acceptAsClient(configurations),this.params}cleanup(){if(this._inflate&&=(this._inflate.close(),null),this._deflate){let callback=this._deflate[kCallback];this._deflate.close(),this._deflate=null,callback&&callback(Error(`The deflate stream was closed while data was being processed`))}}acceptAsServer(offers){let opts=this._options,accepted=offers.find(params=>!(opts.serverNoContextTakeover===!1&¶ms.server_no_context_takeover||params.server_max_window_bits&&(opts.serverMaxWindowBits===!1||typeof opts.serverMaxWindowBits==`number`&&opts.serverMaxWindowBits>params.server_max_window_bits)||typeof opts.clientMaxWindowBits==`number`&&!params.client_max_window_bits));if(!accepted)throw Error(`None of the extension offers can be accepted`);return opts.serverNoContextTakeover&&(accepted.server_no_context_takeover=!0),opts.clientNoContextTakeover&&(accepted.client_no_context_takeover=!0),typeof opts.serverMaxWindowBits==`number`&&(accepted.server_max_window_bits=opts.serverMaxWindowBits),typeof opts.clientMaxWindowBits==`number`?accepted.client_max_window_bits=opts.clientMaxWindowBits:(accepted.client_max_window_bits===!0||opts.clientMaxWindowBits===!1)&&delete accepted.client_max_window_bits,accepted}acceptAsClient(response){let params=response[0];if(this._options.clientNoContextTakeover===!1&¶ms.client_no_context_takeover)throw Error(`Unexpected parameter "client_no_context_takeover"`);if(!params.client_max_window_bits)typeof this._options.clientMaxWindowBits==`number`&&(params.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==`number`&¶ms.client_max_window_bits>this._options.clientMaxWindowBits)throw Error(`Unexpected or invalid parameter "client_max_window_bits"`);return params}normalizeParams(configurations){return configurations.forEach(params=>{Object.keys(params).forEach(key=>{let value=params[key];if(value.length>1)throw Error(`Parameter "${key}" must have only a single value`);if(value=value[0],key===`client_max_window_bits`){if(value!==!0){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else if(key===`server_max_window_bits`){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(key===`client_no_context_takeover`||key===`server_no_context_takeover`){if(value!==!0)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else throw Error(`Unknown parameter "${key}"`);params[key]=value})}),configurations}decompress(data,fin,callback){zlibLimiter.add(done=>{this._decompress(data,fin,(err,result)=>{done(),callback(err,result)})})}compress(data,fin,callback){zlibLimiter.add(done=>{this._compress(data,fin,(err,result)=>{done(),callback(err,result)})})}_decompress(data,fin,callback){let endpoint=this._isServer?`client`:`server`;if(!this._inflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$1.Z_DEFAULT_WINDOWBITS;this._inflate=zlib$1.createInflateRaw({...this._options.zlibInflateOptions,windowBits}),this._inflate[kPerMessageDeflate]=this,this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],this._inflate.on(`error`,inflateOnError),this._inflate.on(`data`,inflateOnData)}this._inflate[kCallback]=callback,this._inflate.write(data),fin&&this._inflate.write(TRAILER),this._inflate.flush(()=>{let err=this._inflate[kError];if(err){this._inflate.close(),this._inflate=null,callback(err);return}let data$1=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._inflate.reset()),callback(null,data$1)})}_compress(data,fin,callback){let endpoint=this._isServer?`server`:`client`;if(!this._deflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$1.Z_DEFAULT_WINDOWBITS;this._deflate=zlib$1.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits}),this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],this._deflate.on(`data`,deflateOnData)}this._deflate[kCallback]=callback,this._deflate.write(data),this._deflate.flush(zlib$1.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let data$1=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);fin&&(data$1=new FastBuffer(data$1.buffer,data$1.byteOffset,data$1.length-4)),this._deflate[kCallback]=null,this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._deflate.reset(),callback(null,data$1)})}};function deflateOnData(chunk){this[kBuffers].push(chunk),this[kTotalLength]+=chunk.length}function inflateOnData(chunk){if(this[kTotalLength]+=chunk.length,this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload){this[kBuffers].push(chunk);return}this[kError]=RangeError(`Max payload size exceeded`),this[kError].code=`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`,this[kError][kStatusCode]=1009,this.removeListener(`data`,inflateOnData),this.reset()}function inflateOnError(err){if(this[kPerMessageDeflate]._inflate=null,this[kError]){this[kCallback](this[kError]);return}err[kStatusCode]=1007,this[kCallback](err)}})),require_validation=__commonJSMin(((exports,module)=>{let{isUtf8}=__require(`buffer`),{hasBlob}=require_constants(),tokenChars=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function isValidStatusCode(code){return code>=1e3&&code<=1014&&code!==1004&&code!==1005&&code!==1006||code>=3e3&&code<=4999}function _isValidUTF8(buf){let len=buf.length,i=0;for(;i<len;)if(!(buf[i]&128))i++;else if((buf[i]&224)==192){if(i+1===len||(buf[i+1]&192)!=128||(buf[i]&254)==192)return!1;i+=2}else if((buf[i]&240)==224){if(i+2>=len||(buf[i+1]&192)!=128||(buf[i+2]&192)!=128||buf[i]===224&&(buf[i+1]&224)==128||buf[i]===237&&(buf[i+1]&224)==160)return!1;i+=3}else if((buf[i]&248)==240){if(i+3>=len||(buf[i+1]&192)!=128||(buf[i+2]&192)!=128||(buf[i+3]&192)!=128||buf[i]===240&&(buf[i+1]&240)==128||buf[i]===244&&buf[i+1]>143||buf[i]>244)return!1;i+=4}else return!1;return!0}function isBlob(value){return hasBlob&&typeof value==`object`&&typeof value.arrayBuffer==`function`&&typeof value.type==`string`&&typeof value.stream==`function`&&(value[Symbol.toStringTag]===`Blob`||value[Symbol.toStringTag]===`File`)}if(module.exports={isBlob,isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars},isUtf8)module.exports.isValidUTF8=function(buf){return buf.length<24?_isValidUTF8(buf):isUtf8(buf)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let isValidUTF8=__require(`utf-8-validate`);module.exports.isValidUTF8=function(buf){return buf.length<32?_isValidUTF8(buf):isValidUTF8(buf)}}catch{}})),require_receiver=__commonJSMin(((exports,module)=>{let{Writable}=__require(`stream`),PerMessageDeflate=require_permessage_deflate(),{BINARY_TYPES,EMPTY_BUFFER,kStatusCode,kWebSocket}=require_constants(),{concat,toArrayBuffer,unmask}=require_buffer_util(),{isValidStatusCode,isValidUTF8}=require_validation(),FastBuffer=Buffer[Symbol.species],GET_INFO=0,GET_PAYLOAD_LENGTH_16=1,GET_PAYLOAD_LENGTH_64=2,GET_MASK=3,GET_DATA=4,INFLATING=5,DEFER_EVENT=6;module.exports=class extends Writable{constructor(options={}){super(),this._allowSynchronousEvents=options.allowSynchronousEvents===void 0?!0:options.allowSynchronousEvents,this._binaryType=options.binaryType||BINARY_TYPES[0],this._extensions=options.extensions||{},this._isServer=!!options.isServer,this._maxPayload=options.maxPayload|0,this._skipUTF8Validation=!!options.skipUTF8Validation,this[kWebSocket]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(chunk,encoding,cb){if(this._opcode===8&&this._state==0)return cb();this._bufferedBytes+=chunk.length,this._buffers.push(chunk),this.startLoop(cb)}consume(n){if(this._bufferedBytes-=n,n===this._buffers[0].length)return this._buffers.shift();if(n<this._buffers[0].length){let buf=this._buffers[0];return this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n),new FastBuffer(buf.buffer,buf.byteOffset,n)}let dst=Buffer.allocUnsafe(n);do{let buf=this._buffers[0],offset=dst.length-n;n>=buf.length?dst.set(this._buffers.shift(),offset):(dst.set(new Uint8Array(buf.buffer,buf.byteOffset,n),offset),this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n)),n-=buf.length}while(n>0);return dst}startLoop(cb){this._loop=!0;do switch(this._state){case 0:this.getInfo(cb);break;case 1:this.getPayloadLength16(cb);break;case 2:this.getPayloadLength64(cb);break;case 3:this.getMask();break;case 4:this.getData(cb);break;case 5:case 6:this._loop=!1;return}while(this._loop);this._errored||cb()}getInfo(cb){if(this._bufferedBytes<2){this._loop=!1;return}let buf=this.consume(2);if(buf[0]&48){cb(this.createError(RangeError,`RSV2 and RSV3 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_2_3`));return}let compressed=(buf[0]&64)==64;if(compressed&&!this._extensions[PerMessageDeflate.extensionName]){cb(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(this._fin=(buf[0]&128)==128,this._opcode=buf[0]&15,this._payloadLength=buf[1]&127,this._opcode===0){if(compressed){cb(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(!this._fragmented){cb(this.createError(RangeError,`invalid opcode 0`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){cb(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}this._compressed=compressed}else if(this._opcode>7&&this._opcode<11){if(!this._fin){cb(this.createError(RangeError,`FIN must be set`,!0,1002,`WS_ERR_EXPECTED_FIN`));return}if(compressed){cb(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){cb(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,`WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH`));return}}else{cb(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(buf[1]&128)==128,this._isServer){if(!this._masked){cb(this.createError(RangeError,`MASK must be set`,!0,1002,`WS_ERR_EXPECTED_MASK`));return}}else if(this._masked){cb(this.createError(RangeError,`MASK must be clear`,!0,1002,`WS_ERR_UNEXPECTED_MASK`));return}this._payloadLength===126?this._state=1:this._payloadLength===127?this._state=2:this.haveLength(cb)}getPayloadLength16(cb){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(cb)}getPayloadLength64(cb){if(this._bufferedBytes<8){this._loop=!1;return}let buf=this.consume(8),num=buf.readUInt32BE(0);if(num>2**21-1){cb(this.createError(RangeError,`Unsupported WebSocket frame: payload length > 2^53 - 1`,!1,1009,`WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH`));return}this._payloadLength=num*2**32+buf.readUInt32BE(4),this.haveLength(cb)}haveLength(cb){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){cb(this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`));return}this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(cb){let data=EMPTY_BUFFER;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}data=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&unmask(data,this._mask)}if(this._opcode>7){this.controlMessage(data,cb);return}if(this._compressed){this._state=5,this.decompress(data,cb);return}data.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(data)),this.dataMessage(cb)}decompress(data,cb){this._extensions[PerMessageDeflate.extensionName].decompress(data,this._fin,(err,buf)=>{if(err)return cb(err);if(buf.length){if(this._messageLength+=buf.length,this._messageLength>this._maxPayload&&this._maxPayload>0){cb(this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`));return}this._fragments.push(buf)}this.dataMessage(cb),this._state===0&&this.startLoop(cb)})}dataMessage(cb){if(!this._fin){this._state=0;return}let messageLength=this._messageLength,fragments=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let data;data=this._binaryType===`nodebuffer`?concat(fragments,messageLength):this._binaryType===`arraybuffer`?toArrayBuffer(concat(fragments,messageLength)):this._binaryType===`blob`?new Blob(fragments):fragments,this._allowSynchronousEvents?(this.emit(`message`,data,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,data,!0),this._state=0,this.startLoop(cb)}))}else{let buf=concat(fragments,messageLength);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){cb(this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`));return}this._state===5||this._allowSynchronousEvents?(this.emit(`message`,buf,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,buf,!1),this._state=0,this.startLoop(cb)}))}}controlMessage(data,cb){if(this._opcode===8){if(data.length===0)this._loop=!1,this.emit(`conclude`,1005,EMPTY_BUFFER),this.end();else{let code=data.readUInt16BE(0);if(!isValidStatusCode(code)){cb(this.createError(RangeError,`invalid status code ${code}`,!0,1002,`WS_ERR_INVALID_CLOSE_CODE`));return}let buf=new FastBuffer(data.buffer,data.byteOffset+2,data.length-2);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){cb(this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`));return}this._loop=!1,this.emit(`conclude`,code,buf),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?`ping`:`pong`,data),this._state=0):(this._state=6,setImmediate(()=>{this.emit(this._opcode===9?`ping`:`pong`,data),this._state=0,this.startLoop(cb)}))}createError(ErrorCtor,message,prefix,statusCode,errorCode){this._loop=!1,this._errored=!0;let err=new ErrorCtor(prefix?`Invalid WebSocket frame: ${message}`:message);return Error.captureStackTrace(err,this.createError),err.code=errorCode,err[kStatusCode]=statusCode,err}}})),require_sender=__commonJSMin(((exports,module)=>{let{Duplex:Duplex$3}=__require(`stream`),{randomFillSync}=__require(`crypto`),PerMessageDeflate=require_permessage_deflate(),{EMPTY_BUFFER,kWebSocket,NOOP}=require_constants(),{isBlob,isValidStatusCode}=require_validation(),{mask:applyMask,toBuffer}=require_buffer_util(),kByteLength=Symbol(`kByteLength`),maskBuffer=Buffer.alloc(4),RANDOM_POOL_SIZE=8*1024,randomPool,randomPoolPointer=RANDOM_POOL_SIZE,DEFAULT=0,DEFLATING=1,GET_BLOB_DATA=2;module.exports=class Sender{constructor(socket,extensions,generateMask){this._extensions=extensions||{},generateMask&&(this._generateMask=generateMask,this._maskBuffer=Buffer.alloc(4)),this._socket=socket,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=NOOP,this[kWebSocket]=void 0}static frame(data,options){let mask,merge=!1,offset=2,skipMasking=!1;options.mask&&(mask=options.maskBuffer||maskBuffer,options.generateMask?options.generateMask(mask):(randomPoolPointer===RANDOM_POOL_SIZE&&(randomPool===void 0&&(randomPool=Buffer.alloc(RANDOM_POOL_SIZE)),randomFillSync(randomPool,0,RANDOM_POOL_SIZE),randomPoolPointer=0),mask[0]=randomPool[randomPoolPointer++],mask[1]=randomPool[randomPoolPointer++],mask[2]=randomPool[randomPoolPointer++],mask[3]=randomPool[randomPoolPointer++]),skipMasking=(mask[0]|mask[1]|mask[2]|mask[3])===0,offset=6);let dataLength;typeof data==`string`?(!options.mask||skipMasking)&&options[kByteLength]!==void 0?dataLength=options[kByteLength]:(data=Buffer.from(data),dataLength=data.length):(dataLength=data.length,merge=options.mask&&options.readOnly&&!skipMasking);let payloadLength=dataLength;dataLength>=65536?(offset+=8,payloadLength=127):dataLength>125&&(offset+=2,payloadLength=126);let target=Buffer.allocUnsafe(merge?dataLength+offset:offset);return target[0]=options.fin?options.opcode|128:options.opcode,options.rsv1&&(target[0]|=64),target[1]=payloadLength,payloadLength===126?target.writeUInt16BE(dataLength,2):payloadLength===127&&(target[2]=target[3]=0,target.writeUIntBE(dataLength,4,6)),!options.mask||(target[1]|=128,target[offset-4]=mask[0],target[offset-3]=mask[1],target[offset-2]=mask[2],target[offset-1]=mask[3],skipMasking)?[target,data]:merge?(applyMask(data,mask,target,offset,dataLength),[target]):(applyMask(data,mask,data,0,dataLength),[target,data])}close(code,data,mask,cb){let buf;if(code===void 0)buf=EMPTY_BUFFER;else if(typeof code!=`number`||!isValidStatusCode(code))throw TypeError(`First argument must be a valid error code number`);else if(data===void 0||!data.length)buf=Buffer.allocUnsafe(2),buf.writeUInt16BE(code,0);else{let length=Buffer.byteLength(data);if(length>123)throw RangeError(`The message must not be greater than 123 bytes`);buf=Buffer.allocUnsafe(2+length),buf.writeUInt16BE(code,0),typeof data==`string`?buf.write(data,2):buf.set(data,2)}let options={[kByteLength]:buf.length,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state===0?this.sendFrame(Sender.frame(buf,options),cb):this.enqueue([this.dispatch,buf,!1,options,cb])}ping(data,mask,cb){let byteLength,readOnly;if(typeof data==`string`?(byteLength=Buffer.byteLength(data),readOnly=!1):isBlob(data)?(byteLength=data.size,readOnly=!1):(data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly),byteLength>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options={[kByteLength]:byteLength,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:9,readOnly,rsv1:!1};isBlob(data)?this._state===0?this.getBlobData(data,!1,options,cb):this.enqueue([this.getBlobData,data,!1,options,cb]):this._state===0?this.sendFrame(Sender.frame(data,options),cb):this.enqueue([this.dispatch,data,!1,options,cb])}pong(data,mask,cb){let byteLength,readOnly;if(typeof data==`string`?(byteLength=Buffer.byteLength(data),readOnly=!1):isBlob(data)?(byteLength=data.size,readOnly=!1):(data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly),byteLength>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options={[kByteLength]:byteLength,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:10,readOnly,rsv1:!1};isBlob(data)?this._state===0?this.getBlobData(data,!1,options,cb):this.enqueue([this.getBlobData,data,!1,options,cb]):this._state===0?this.sendFrame(Sender.frame(data,options),cb):this.enqueue([this.dispatch,data,!1,options,cb])}send(data,options,cb){let perMessageDeflate=this._extensions[PerMessageDeflate.extensionName],opcode=options.binary?2:1,rsv1=options.compress,byteLength,readOnly;typeof data==`string`?(byteLength=Buffer.byteLength(data),readOnly=!1):isBlob(data)?(byteLength=data.size,readOnly=!1):(data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly),this._firstFragment?(this._firstFragment=!1,rsv1&&perMessageDeflate&&perMessageDeflate.params[perMessageDeflate._isServer?`server_no_context_takeover`:`client_no_context_takeover`]&&(rsv1=byteLength>=perMessageDeflate._threshold),this._compress=rsv1):(rsv1=!1,opcode=0),options.fin&&(this._firstFragment=!0);let opts={[kByteLength]:byteLength,fin:options.fin,generateMask:this._generateMask,mask:options.mask,maskBuffer:this._maskBuffer,opcode,readOnly,rsv1};isBlob(data)?this._state===0?this.getBlobData(data,this._compress,opts,cb):this.enqueue([this.getBlobData,data,this._compress,opts,cb]):this._state===0?this.dispatch(data,this._compress,opts,cb):this.enqueue([this.dispatch,data,this._compress,opts,cb])}getBlobData(blob,compress,options,cb){this._bufferedBytes+=options[kByteLength],this._state=2,blob.arrayBuffer().then(arrayBuffer=>{if(this._socket.destroyed){let err=Error(`The socket was closed while the blob was being read`);process.nextTick(callCallbacks,this,err,cb);return}this._bufferedBytes-=options[kByteLength];let data=toBuffer(arrayBuffer);compress?this.dispatch(data,compress,options,cb):(this._state=0,this.sendFrame(Sender.frame(data,options),cb),this.dequeue())}).catch(err=>{process.nextTick(onError,this,err,cb)})}dispatch(data,compress,options,cb){if(!compress){this.sendFrame(Sender.frame(data,options),cb);return}let perMessageDeflate=this._extensions[PerMessageDeflate.extensionName];this._bufferedBytes+=options[kByteLength],this._state=1,perMessageDeflate.compress(data,options.fin,(_,buf)=>{if(this._socket.destroyed){callCallbacks(this,Error(`The socket was closed while data was being compressed`),cb);return}this._bufferedBytes-=options[kByteLength],this._state=0,options.readOnly=!1,this.sendFrame(Sender.frame(buf,options),cb),this.dequeue()})}dequeue(){for(;this._state===0&&this._queue.length;){let params=this._queue.shift();this._bufferedBytes-=params[3][kByteLength],Reflect.apply(params[0],this,params.slice(1))}}enqueue(params){this._bufferedBytes+=params[3][kByteLength],this._queue.push(params)}sendFrame(list,cb){list.length===2?(this._socket.cork(),this._socket.write(list[0]),this._socket.write(list[1],cb),this._socket.uncork()):this._socket.write(list[0],cb)}};function callCallbacks(sender,err,cb){typeof cb==`function`&&cb(err);for(let i=0;i<sender._queue.length;i++){let params=sender._queue[i],callback=params[params.length-1];typeof callback==`function`&&callback(err)}}function onError(sender,err,cb){callCallbacks(sender,err,cb),sender.onerror(err)}})),require_event_target=__commonJSMin(((exports,module)=>{let{kForOnEventAttribute,kListener}=require_constants(),kCode=Symbol(`kCode`),kData=Symbol(`kData`),kError=Symbol(`kError`),kMessage=Symbol(`kMessage`),kReason=Symbol(`kReason`),kTarget=Symbol(`kTarget`),kType=Symbol(`kType`),kWasClean=Symbol(`kWasClean`);var Event=class{constructor(type){this[kTarget]=null,this[kType]=type}get target(){return this[kTarget]}get type(){return this[kType]}};Object.defineProperty(Event.prototype,`target`,{enumerable:!0}),Object.defineProperty(Event.prototype,`type`,{enumerable:!0});var CloseEvent=class extends Event{constructor(type,options={}){super(type),this[kCode]=options.code===void 0?0:options.code,this[kReason]=options.reason===void 0?``:options.reason,this[kWasClean]=options.wasClean===void 0?!1:options.wasClean}get code(){return this[kCode]}get reason(){return this[kReason]}get wasClean(){return this[kWasClean]}};Object.defineProperty(CloseEvent.prototype,`code`,{enumerable:!0}),Object.defineProperty(CloseEvent.prototype,`reason`,{enumerable:!0}),Object.defineProperty(CloseEvent.prototype,`wasClean`,{enumerable:!0});var ErrorEvent=class extends Event{constructor(type,options={}){super(type),this[kError]=options.error===void 0?null:options.error,this[kMessage]=options.message===void 0?``:options.message}get error(){return this[kError]}get message(){return this[kMessage]}};Object.defineProperty(ErrorEvent.prototype,`error`,{enumerable:!0}),Object.defineProperty(ErrorEvent.prototype,`message`,{enumerable:!0});var MessageEvent=class extends Event{constructor(type,options={}){super(type),this[kData]=options.data===void 0?null:options.data}get data(){return this[kData]}};Object.defineProperty(MessageEvent.prototype,`data`,{enumerable:!0}),module.exports={CloseEvent,ErrorEvent,Event,EventTarget:{addEventListener(type,handler,options={}){for(let listener of this.listeners(type))if(!options[kForOnEventAttribute]&&listener[kListener]===handler&&!listener[kForOnEventAttribute])return;let wrapper;if(type===`message`)wrapper=function(data,isBinary){let event=new MessageEvent(`message`,{data:isBinary?data:data.toString()});event[kTarget]=this,callListener(handler,this,event)};else if(type===`close`)wrapper=function(code,message){let event=new CloseEvent(`close`,{code,reason:message.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});event[kTarget]=this,callListener(handler,this,event)};else if(type===`error`)wrapper=function(error){let event=new ErrorEvent(`error`,{error,message:error.message});event[kTarget]=this,callListener(handler,this,event)};else if(type===`open`)wrapper=function(){let event=new Event(`open`);event[kTarget]=this,callListener(handler,this,event)};else return;wrapper[kForOnEventAttribute]=!!options[kForOnEventAttribute],wrapper[kListener]=handler,options.once?this.once(type,wrapper):this.on(type,wrapper)},removeEventListener(type,handler){for(let listener of this.listeners(type))if(listener[kListener]===handler&&!listener[kForOnEventAttribute]){this.removeListener(type,listener);break}}},MessageEvent};function callListener(listener,thisArg,event){typeof listener==`object`&&listener.handleEvent?listener.handleEvent.call(listener,event):listener.call(thisArg,event)}})),require_extension=__commonJSMin(((exports,module)=>{let{tokenChars}=require_validation();function push(dest,name,elem){dest[name]===void 0?dest[name]=[elem]:dest[name].push(elem)}function parse(header){let offers=Object.create(null),params=Object.create(null),mustUnescape=!1,isEscaping=!1,inQuotes=!1,extensionName,paramName,start=-1,code=-1,end=-1,i=0;for(;i<header.length;i++)if(code=header.charCodeAt(i),extensionName===void 0)if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(i!==0&&(code===32||code===9))end===-1&&start!==-1&&(end=i);else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i);let name=header.slice(start,end);code===44?(push(offers,name,params),params=Object.create(null)):extensionName=name,start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`);else if(paramName===void 0)if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(code===32||code===9)end===-1&&start!==-1&&(end=i);else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i),push(params,header.slice(start,end),!0),code===44&&(push(offers,extensionName,params),params=Object.create(null),extensionName=void 0),start=end=-1}else if(code===61&&start!==-1&&end===-1)paramName=header.slice(start,i),start=end=-1;else throw SyntaxError(`Unexpected character at index ${i}`);else if(isEscaping){if(tokenChars[code]!==1)throw SyntaxError(`Unexpected character at index ${i}`);start===-1?start=i:mustUnescape||=!0,isEscaping=!1}else if(inQuotes)if(tokenChars[code]===1)start===-1&&(start=i);else if(code===34&&start!==-1)inQuotes=!1,end=i;else if(code===92)isEscaping=!0;else throw SyntaxError(`Unexpected character at index ${i}`);else if(code===34&&header.charCodeAt(i-1)===61)inQuotes=!0;else if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(start!==-1&&(code===32||code===9))end===-1&&(end=i);else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i);let value=header.slice(start,end);mustUnescape&&=(value=value.replace(/\\/g,``),!1),push(params,paramName,value),code===44&&(push(offers,extensionName,params),params=Object.create(null),extensionName=void 0),paramName=void 0,start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`);if(start===-1||inQuotes||code===32||code===9)throw SyntaxError(`Unexpected end of input`);end===-1&&(end=i);let token=header.slice(start,end);return extensionName===void 0?push(offers,token,params):(paramName===void 0?push(params,token,!0):mustUnescape?push(params,paramName,token.replace(/\\/g,``)):push(params,paramName,token),push(offers,extensionName,params)),offers}function format(extensions){return Object.keys(extensions).map(extension=>{let configurations=extensions[extension];return Array.isArray(configurations)||(configurations=[configurations]),configurations.map(params=>[extension].concat(Object.keys(params).map(k=>{let values=params[k];return Array.isArray(values)||(values=[values]),values.map(v=>v===!0?k:`${k}=${v}`).join(`; `)})).join(`; `)).join(`, `)}).join(`, `)}module.exports={format,parse}})),require_websocket=__commonJSMin(((exports,module)=>{let EventEmitter$1=__require(`events`),https=__require(`https`),http$1=__require(`http`),net=__require(`net`),tls=__require(`tls`),{randomBytes,createHash:createHash$1}=__require(`crypto`),{Duplex:Duplex$2,Readable:Readable$1}=__require(`stream`),{URL:URL$1}=__require(`url`),PerMessageDeflate=require_permessage_deflate(),Receiver=require_receiver(),Sender=require_sender(),{isBlob}=require_validation(),{BINARY_TYPES,EMPTY_BUFFER,GUID,kForOnEventAttribute,kListener,kStatusCode,kWebSocket,NOOP}=require_constants(),{EventTarget:{addEventListener,removeEventListener}}=require_event_target(),{format,parse}=require_extension(),{toBuffer}=require_buffer_util(),closeTimeout=30*1e3,kAborted=Symbol(`kAborted`),protocolVersions=[8,13],readyStates=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],subprotocolRegex=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;var WebSocket=class WebSocket extends EventEmitter$1{constructor(address,protocols,options){super(),this._binaryType=BINARY_TYPES[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=EMPTY_BUFFER,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol=``,this._readyState=WebSocket.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,address===null?(this._autoPong=options.autoPong,this._isServer=!0):(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,protocols===void 0?protocols=[]:Array.isArray(protocols)||(typeof protocols==`object`&&protocols?(options=protocols,protocols=[]):protocols=[protocols]),initAsClient(this,address,protocols,options))}get binaryType(){return this._binaryType}set binaryType(type){BINARY_TYPES.includes(type)&&(this._binaryType=type,this._receiver&&(this._receiver._binaryType=type))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(socket,head,options){let receiver=new Receiver({allowSynchronousEvents:options.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:options.maxPayload,skipUTF8Validation:options.skipUTF8Validation}),sender=new Sender(socket,this._extensions,options.generateMask);this._receiver=receiver,this._sender=sender,this._socket=socket,receiver[kWebSocket]=this,sender[kWebSocket]=this,socket[kWebSocket]=this,receiver.on(`conclude`,receiverOnConclude),receiver.on(`drain`,receiverOnDrain),receiver.on(`error`,receiverOnError),receiver.on(`message`,receiverOnMessage),receiver.on(`ping`,receiverOnPing),receiver.on(`pong`,receiverOnPong),sender.onerror=senderOnError,socket.setTimeout&&socket.setTimeout(0),socket.setNoDelay&&socket.setNoDelay(),head.length>0&&socket.unshift(head),socket.on(`close`,socketOnClose),socket.on(`data`,socketOnData),socket.on(`end`,socketOnEnd),socket.on(`error`,socketOnError),this._readyState=WebSocket.OPEN,this.emit(`open`)}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage);return}this._extensions[PerMessageDeflate.extensionName]&&this._extensions[PerMessageDeflate.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=WebSocket.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage)}close(code,data){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){abortHandshake(this,this._req,`WebSocket was closed before the connection was established`);return}if(this.readyState===WebSocket.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=WebSocket.CLOSING,this._sender.close(code,data,!this._isServer,err=>{err||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),setCloseTimer(this)}}pause(){this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED||(this._paused=!0,this._socket.pause())}ping(data,mask,cb){if(this.readyState===WebSocket.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data==`function`?(cb=data,data=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data==`number`&&(data=data.toString()),this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.ping(data||EMPTY_BUFFER,mask,cb)}pong(data,mask,cb){if(this.readyState===WebSocket.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data==`function`?(cb=data,data=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data==`number`&&(data=data.toString()),this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.pong(data||EMPTY_BUFFER,mask,cb)}resume(){this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(data,options,cb){if(this.readyState===WebSocket.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof options==`function`&&(cb=options,options={}),typeof data==`number`&&(data=data.toString()),this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}let opts={binary:typeof data!=`string`,mask:!this._isServer,compress:!0,fin:!0,...options};this._extensions[PerMessageDeflate.extensionName]||(opts.compress=!1),this._sender.send(data||EMPTY_BUFFER,opts,cb)}terminate(){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){abortHandshake(this,this._req,`WebSocket was closed before the connection was established`);return}this._socket&&(this._readyState=WebSocket.CLOSING,this._socket.destroy())}}};Object.defineProperty(WebSocket,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket.prototype,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket.prototype,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket.prototype,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),Object.defineProperty(WebSocket.prototype,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),[`binaryType`,`bufferedAmount`,`extensions`,`isPaused`,`protocol`,`readyState`,`url`].forEach(property=>{Object.defineProperty(WebSocket.prototype,property,{enumerable:!0})}),[`open`,`error`,`close`,`message`].forEach(method=>{Object.defineProperty(WebSocket.prototype,`on${method}`,{enumerable:!0,get(){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute])return listener[kListener];return null},set(handler){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute]){this.removeListener(method,listener);break}typeof handler==`function`&&this.addEventListener(method,handler,{[kForOnEventAttribute]:!0})}})}),WebSocket.prototype.addEventListener=addEventListener,WebSocket.prototype.removeEventListener=removeEventListener,module.exports=WebSocket;function initAsClient(websocket,address,protocols,options){let opts={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:protocolVersions[1],maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...options,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:`GET`,host:void 0,path:void 0,port:void 0};if(websocket._autoPong=opts.autoPong,!protocolVersions.includes(opts.protocolVersion))throw RangeError(`Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(`, `)})`);let parsedUrl;if(address instanceof URL$1)parsedUrl=address;else try{parsedUrl=new URL$1(address)}catch{throw SyntaxError(`Invalid URL: ${address}`)}parsedUrl.protocol===`http:`?parsedUrl.protocol=`ws:`:parsedUrl.protocol===`https:`&&(parsedUrl.protocol=`wss:`),websocket._url=parsedUrl.href;let isSecure=parsedUrl.protocol===`wss:`,isIpcUrl=parsedUrl.protocol===`ws+unix:`,invalidUrlMessage;if(parsedUrl.protocol!==`ws:`&&!isSecure&&!isIpcUrl?invalidUrlMessage=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:isIpcUrl&&!parsedUrl.pathname?invalidUrlMessage=`The URL's pathname is empty`:parsedUrl.hash&&(invalidUrlMessage=`The URL contains a fragment identifier`),invalidUrlMessage){let err=SyntaxError(invalidUrlMessage);if(websocket._redirects===0)throw err;emitErrorAndClose(websocket,err);return}let defaultPort=isSecure?443:80,key=randomBytes(16).toString(`base64`),request=isSecure?https.request:http$1.request,protocolSet=new Set,perMessageDeflate;if(opts.createConnection=opts.createConnection||(isSecure?tlsConnect:netConnect),opts.defaultPort=opts.defaultPort||defaultPort,opts.port=parsedUrl.port||defaultPort,opts.host=parsedUrl.hostname.startsWith(`[`)?parsedUrl.hostname.slice(1,-1):parsedUrl.hostname,opts.headers={...opts.headers,"Sec-WebSocket-Version":opts.protocolVersion,"Sec-WebSocket-Key":key,Connection:`Upgrade`,Upgrade:`websocket`},opts.path=parsedUrl.pathname+parsedUrl.search,opts.timeout=opts.handshakeTimeout,opts.perMessageDeflate&&(perMessageDeflate=new PerMessageDeflate(opts.perMessageDeflate===!0?{}:opts.perMessageDeflate,!1,opts.maxPayload),opts.headers[`Sec-WebSocket-Extensions`]=format({[PerMessageDeflate.extensionName]:perMessageDeflate.offer()})),protocols.length){for(let protocol of protocols){if(typeof protocol!=`string`||!subprotocolRegex.test(protocol)||protocolSet.has(protocol))throw SyntaxError(`An invalid or duplicated subprotocol was specified`);protocolSet.add(protocol)}opts.headers[`Sec-WebSocket-Protocol`]=protocols.join(`,`)}if(opts.origin&&(opts.protocolVersion<13?opts.headers[`Sec-WebSocket-Origin`]=opts.origin:opts.headers.Origin=opts.origin),(parsedUrl.username||parsedUrl.password)&&(opts.auth=`${parsedUrl.username}:${parsedUrl.password}`),isIpcUrl){let parts=opts.path.split(`:`);opts.socketPath=parts[0],opts.path=parts[1]}let req;if(opts.followRedirects){if(websocket._redirects===0){websocket._originalIpc=isIpcUrl,websocket._originalSecure=isSecure,websocket._originalHostOrSocketPath=isIpcUrl?opts.socketPath:parsedUrl.host;let headers=options&&options.headers;if(options={...options,headers:{}},headers)for(let[key$1,value]of Object.entries(headers))options.headers[key$1.toLowerCase()]=value}else if(websocket.listenerCount(`redirect`)===0){let isSameHost=isIpcUrl?websocket._originalIpc?opts.socketPath===websocket._originalHostOrSocketPath:!1:websocket._originalIpc?!1:parsedUrl.host===websocket._originalHostOrSocketPath;(!isSameHost||websocket._originalSecure&&!isSecure)&&(delete opts.headers.authorization,delete opts.headers.cookie,isSameHost||delete opts.headers.host,opts.auth=void 0)}opts.auth&&!options.headers.authorization&&(options.headers.authorization=`Basic `+Buffer.from(opts.auth).toString(`base64`)),req=websocket._req=request(opts),websocket._redirects&&websocket.emit(`redirect`,websocket.url,req)}else req=websocket._req=request(opts);opts.timeout&&req.on(`timeout`,()=>{abortHandshake(websocket,req,`Opening handshake has timed out`)}),req.on(`error`,err=>{req===null||req[kAborted]||(req=websocket._req=null,emitErrorAndClose(websocket,err))}),req.on(`response`,res=>{let location=res.headers.location,statusCode=res.statusCode;if(location&&opts.followRedirects&&statusCode>=300&&statusCode<400){if(++websocket._redirects>opts.maxRedirects){abortHandshake(websocket,req,`Maximum redirects exceeded`);return}req.abort();let addr;try{addr=new URL$1(location,address)}catch{emitErrorAndClose(websocket,SyntaxError(`Invalid URL: ${location}`));return}initAsClient(websocket,addr,protocols,options)}else websocket.emit(`unexpected-response`,req,res)||abortHandshake(websocket,req,`Unexpected server response: ${res.statusCode}`)}),req.on(`upgrade`,(res,socket,head)=>{if(websocket.emit(`upgrade`,res),websocket.readyState!==WebSocket.CONNECTING)return;req=websocket._req=null;let upgrade=res.headers.upgrade;if(upgrade===void 0||upgrade.toLowerCase()!==`websocket`){abortHandshake(websocket,socket,`Invalid Upgrade header`);return}let digest=createHash$1(`sha1`).update(key+GUID).digest(`base64`);if(res.headers[`sec-websocket-accept`]!==digest){abortHandshake(websocket,socket,`Invalid Sec-WebSocket-Accept header`);return}let serverProt=res.headers[`sec-websocket-protocol`],protError;if(serverProt===void 0?protocolSet.size&&(protError=`Server sent no subprotocol`):protocolSet.size?protocolSet.has(serverProt)||(protError=`Server sent an invalid subprotocol`):protError=`Server sent a subprotocol but none was requested`,protError){abortHandshake(websocket,socket,protError);return}serverProt&&(websocket._protocol=serverProt);let secWebSocketExtensions=res.headers[`sec-websocket-extensions`];if(secWebSocketExtensions!==void 0){if(!perMessageDeflate){abortHandshake(websocket,socket,`Server sent a Sec-WebSocket-Extensions header but no extension was requested`);return}let extensions;try{extensions=parse(secWebSocketExtensions)}catch{abortHandshake(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}let extensionNames=Object.keys(extensions);if(extensionNames.length!==1||extensionNames[0]!==PerMessageDeflate.extensionName){abortHandshake(websocket,socket,`Server indicated an extension that was not requested`);return}try{perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName])}catch{abortHandshake(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}websocket._extensions[PerMessageDeflate.extensionName]=perMessageDeflate}websocket.setSocket(socket,head,{allowSynchronousEvents:opts.allowSynchronousEvents,generateMask:opts.generateMask,maxPayload:opts.maxPayload,skipUTF8Validation:opts.skipUTF8Validation})}),opts.finishRequest?opts.finishRequest(req,websocket):req.end()}function emitErrorAndClose(websocket,err){websocket._readyState=WebSocket.CLOSING,websocket._errorEmitted=!0,websocket.emit(`error`,err),websocket.emitClose()}function netConnect(options){return options.path=options.socketPath,net.connect(options)}function tlsConnect(options){return options.path=void 0,!options.servername&&options.servername!==``&&(options.servername=net.isIP(options.host)?``:options.host),tls.connect(options)}function abortHandshake(websocket,stream,message){websocket._readyState=WebSocket.CLOSING;let err=Error(message);Error.captureStackTrace(err,abortHandshake),stream.setHeader?(stream[kAborted]=!0,stream.abort(),stream.socket&&!stream.socket.destroyed&&stream.socket.destroy(),process.nextTick(emitErrorAndClose,websocket,err)):(stream.destroy(err),stream.once(`error`,websocket.emit.bind(websocket,`error`)),stream.once(`close`,websocket.emitClose.bind(websocket)))}function sendAfterClose(websocket,data,cb){if(data){let length=isBlob(data)?data.size:toBuffer(data).length;websocket._socket?websocket._sender._bufferedBytes+=length:websocket._bufferedAmount+=length}if(cb){let err=Error(`WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`);process.nextTick(cb,err)}}function receiverOnConclude(code,reason){let websocket=this[kWebSocket];websocket._closeFrameReceived=!0,websocket._closeMessage=reason,websocket._closeCode=code,websocket._socket[kWebSocket]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume,websocket._socket),code===1005?websocket.close():websocket.close(code,reason))}function receiverOnDrain(){let websocket=this[kWebSocket];websocket.isPaused||websocket._socket.resume()}function receiverOnError(err){let websocket=this[kWebSocket];websocket._socket[kWebSocket]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume,websocket._socket),websocket.close(err[kStatusCode])),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err))}function receiverOnFinish(){this[kWebSocket].emitClose()}function receiverOnMessage(data,isBinary){this[kWebSocket].emit(`message`,data,isBinary)}function receiverOnPing(data){let websocket=this[kWebSocket];websocket._autoPong&&websocket.pong(data,!this._isServer,NOOP),websocket.emit(`ping`,data)}function receiverOnPong(data){this[kWebSocket].emit(`pong`,data)}function resume(stream){stream.resume()}function senderOnError(err){let websocket=this[kWebSocket];websocket.readyState!==WebSocket.CLOSED&&(websocket.readyState===WebSocket.OPEN&&(websocket._readyState=WebSocket.CLOSING,setCloseTimer(websocket)),this._socket.end(),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err)))}function setCloseTimer(websocket){websocket._closeTimer=setTimeout(websocket._socket.destroy.bind(websocket._socket),3e4)}function socketOnClose(){let websocket=this[kWebSocket];this.removeListener(`close`,socketOnClose),this.removeListener(`data`,socketOnData),this.removeListener(`end`,socketOnEnd),websocket._readyState=WebSocket.CLOSING;let chunk;!this._readableState.endEmitted&&!websocket._closeFrameReceived&&!websocket._receiver._writableState.errorEmitted&&(chunk=websocket._socket.read())!==null&&websocket._receiver.write(chunk),websocket._receiver.end(),this[kWebSocket]=void 0,clearTimeout(websocket._closeTimer),websocket._receiver._writableState.finished||websocket._receiver._writableState.errorEmitted?websocket.emitClose():(websocket._receiver.on(`error`,receiverOnFinish),websocket._receiver.on(`finish`,receiverOnFinish))}function socketOnData(chunk){this[kWebSocket]._receiver.write(chunk)||this.pause()}function socketOnEnd(){let websocket=this[kWebSocket];websocket._readyState=WebSocket.CLOSING,websocket._receiver.end(),this.end()}function socketOnError(){let websocket=this[kWebSocket];this.removeListener(`error`,socketOnError),this.on(`error`,NOOP),websocket&&(websocket._readyState=WebSocket.CLOSING,this.destroy())}})),require_stream=__commonJSMin(((exports,module)=>{require_websocket();let{Duplex:Duplex$1}=__require(`stream`);function emitClose(stream){stream.emit(`close`)}function duplexOnEnd(){!this.destroyed&&this._writableState.finished&&this.destroy()}function duplexOnError(err){this.removeListener(`error`,duplexOnError),this.destroy(),this.listenerCount(`error`)===0&&this.emit(`error`,err)}function createWebSocketStream(ws,options){let terminateOnDestroy=!0,duplex=new Duplex$1({...options,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return ws.on(`message`,function(msg,isBinary){let data=!isBinary&&duplex._readableState.objectMode?msg.toString():msg;duplex.push(data)||ws.pause()}),ws.once(`error`,function(err){duplex.destroyed||(terminateOnDestroy=!1,duplex.destroy(err))}),ws.once(`close`,function(){duplex.destroyed||duplex.push(null)}),duplex._destroy=function(err,callback){if(ws.readyState===ws.CLOSED){callback(err),process.nextTick(emitClose,duplex);return}let called=!1;ws.once(`error`,function(err$1){called=!0,callback(err$1)}),ws.once(`close`,function(){called||callback(err),process.nextTick(emitClose,duplex)}),terminateOnDestroy&&ws.terminate()},duplex._final=function(callback){if(ws.readyState===ws.CONNECTING){ws.once(`open`,function(){duplex._final(callback)});return}ws._socket!==null&&(ws._socket._writableState.finished?(callback(),duplex._readableState.endEmitted&&duplex.destroy()):(ws._socket.once(`finish`,function(){callback()}),ws.close()))},duplex._read=function(){ws.isPaused&&ws.resume()},duplex._write=function(chunk,encoding,callback){if(ws.readyState===ws.CONNECTING){ws.once(`open`,function(){duplex._write(chunk,encoding,callback)});return}ws.send(chunk,callback)},duplex.on(`end`,duplexOnEnd),duplex.on(`error`,duplexOnError),duplex}module.exports=createWebSocketStream})),require_subprotocol=__commonJSMin(((exports,module)=>{let{tokenChars}=require_validation();function parse(header){let protocols=new Set,start=-1,end=-1,i=0;for(;i<header.length;i++){let code=header.charCodeAt(i);if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(i!==0&&(code===32||code===9))end===-1&&start!==-1&&(end=i);else if(code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i);let protocol$1=header.slice(start,end);if(protocols.has(protocol$1))throw SyntaxError(`The "${protocol$1}" subprotocol is duplicated`);protocols.add(protocol$1),start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`)}if(start===-1||end!==-1)throw SyntaxError(`Unexpected end of input`);let protocol=header.slice(start,i);if(protocols.has(protocol))throw SyntaxError(`The "${protocol}" subprotocol is duplicated`);return protocols.add(protocol),protocols}module.exports={parse}})),require_websocket_server=__commonJSMin(((exports,module)=>{let EventEmitter=__require(`events`),http=__require(`http`),{Duplex}=__require(`stream`),{createHash}=__require(`crypto`),extension=require_extension(),PerMessageDeflate=require_permessage_deflate(),subprotocol=require_subprotocol(),WebSocket=require_websocket(),{GUID,kWebSocket}=require_constants(),keyRegex=/^[+/0-9A-Za-z]{22}==$/,RUNNING=0,CLOSING=1,CLOSED=2;module.exports=class extends EventEmitter{constructor(options,callback){if(super(),options={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket,...options},options.port==null&&!options.server&&!options.noServer||options.port!=null&&(options.server||options.noServer)||options.server&&options.noServer)throw TypeError(`One and only one of the "port", "server", or "noServer" options must be specified`);if(options.port==null?options.server&&(this._server=options.server):(this._server=http.createServer((req,res)=>{let body=http.STATUS_CODES[426];res.writeHead(426,{"Content-Length":body.length,"Content-Type":`text/plain`}),res.end(body)}),this._server.listen(options.port,options.host,options.backlog,callback)),this._server){let emitConnection=this.emit.bind(this,`connection`);this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,`listening`),error:this.emit.bind(this,`error`),upgrade:(req,socket,head)=>{this.handleUpgrade(req,socket,head,emitConnection)}})}options.perMessageDeflate===!0&&(options.perMessageDeflate={}),options.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=options,this._state=0}address(){if(this.options.noServer)throw Error(`The server is operating in "noServer" mode`);return this._server?this._server.address():null}close(cb){if(this._state===2){cb&&this.once(`close`,()=>{cb(Error(`The server is not running`))}),process.nextTick(emitClose,this);return}if(cb&&this.once(`close`,cb),this._state!==1)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(emitClose,this);else{let server=this._server;this._removeListeners(),this._removeListeners=this._server=null,server.close(()=>{emitClose(this)})}}shouldHandle(req){if(this.options.path){let index=req.url.indexOf(`?`);if((index===-1?req.url:req.url.slice(0,index))!==this.options.path)return!1}return!0}handleUpgrade(req,socket,head,cb){socket.on(`error`,socketOnError);let key=req.headers[`sec-websocket-key`],upgrade=req.headers.upgrade,version$1=+req.headers[`sec-websocket-version`];if(req.method!==`GET`){abortHandshakeOrEmitwsClientError(this,req,socket,405,`Invalid HTTP method`);return}if(upgrade===void 0||upgrade.toLowerCase()!==`websocket`){abortHandshakeOrEmitwsClientError(this,req,socket,400,`Invalid Upgrade header`);return}if(key===void 0||!keyRegex.test(key)){abortHandshakeOrEmitwsClientError(this,req,socket,400,`Missing or invalid Sec-WebSocket-Key header`);return}if(version$1!==13&&version$1!==8){abortHandshakeOrEmitwsClientError(this,req,socket,400,`Missing or invalid Sec-WebSocket-Version header`,{"Sec-WebSocket-Version":`13, 8`});return}if(!this.shouldHandle(req)){abortHandshake(socket,400);return}let secWebSocketProtocol=req.headers[`sec-websocket-protocol`],protocols=new Set;if(secWebSocketProtocol!==void 0)try{protocols=subprotocol.parse(secWebSocketProtocol)}catch{abortHandshakeOrEmitwsClientError(this,req,socket,400,`Invalid Sec-WebSocket-Protocol header`);return}let secWebSocketExtensions=req.headers[`sec-websocket-extensions`],extensions={};if(this.options.perMessageDeflate&&secWebSocketExtensions!==void 0){let perMessageDeflate=new PerMessageDeflate(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let offers=extension.parse(secWebSocketExtensions);offers[PerMessageDeflate.extensionName]&&(perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]),extensions[PerMessageDeflate.extensionName]=perMessageDeflate)}catch{abortHandshakeOrEmitwsClientError(this,req,socket,400,`Invalid or unacceptable Sec-WebSocket-Extensions header`);return}}if(this.options.verifyClient){let info={origin:req.headers[`${version$1===8?`sec-websocket-origin`:`origin`}`],secure:!!(req.socket.authorized||req.socket.encrypted),req};if(this.options.verifyClient.length===2){this.options.verifyClient(info,(verified,code,message,headers)=>{if(!verified)return abortHandshake(socket,code||401,message,headers);this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)});return}if(!this.options.verifyClient(info))return abortHandshake(socket,401)}this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)}completeUpgrade(extensions,key,protocols,req,socket,head,cb){if(!socket.readable||!socket.writable)return socket.destroy();if(socket[kWebSocket])throw Error(`server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration`);if(this._state>0)return abortHandshake(socket,503);let headers=[`HTTP/1.1 101 Switching Protocols`,`Upgrade: websocket`,`Connection: Upgrade`,`Sec-WebSocket-Accept: ${createHash(`sha1`).update(key+GUID).digest(`base64`)}`],ws=new this.options.WebSocket(null,void 0,this.options);if(protocols.size){let protocol=this.options.handleProtocols?this.options.handleProtocols(protocols,req):protocols.values().next().value;protocol&&(headers.push(`Sec-WebSocket-Protocol: ${protocol}`),ws._protocol=protocol)}if(extensions[PerMessageDeflate.extensionName]){let params=extensions[PerMessageDeflate.extensionName].params,value=extension.format({[PerMessageDeflate.extensionName]:[params]});headers.push(`Sec-WebSocket-Extensions: ${value}`),ws._extensions=extensions}this.emit(`headers`,headers,req),socket.write(headers.concat(`\r
|
|
129
|
+
`);if(stack&&stack.length>2){let match=stack[2].match(/at\s+(.*):(\d+):(\d+)/);if(match)return{fileName:match[1],lineNumber:parseInt(match[2],10)}}return{fileName:`unknown`,lineNumber:-1}}exports.getCallSiteInfo=getCallSiteInfo,exports.DebugAction=class{sleepms;awaitEvent;callback;asyncCallback},exports.pointTriggers=new Map,exports.pointLocations=new Map;async function debugTriggerPoint(name){let cpi=getCallSiteInfo();if(exports.pointLocations.has(name)||exports.pointLocations.set(name,{name,...cpi,hitCount:0}),exports.pointTriggers.has(name)){let pt=exports.pointTriggers.get(name);pt.sleepms&&await(0,utils_1.sleepms)(pt.sleepms),pt.asyncCallback&&await pt.asyncCallback(),pt.callback&&pt.callback(),pt.awaitEvent&&await pt.awaitEvent}}exports.debugTriggerPoint=debugTriggerPoint;function setDebugTrigger(name,action){exports.pointTriggers.set(name,action)}exports.setDebugTrigger=setDebugTrigger;function clearDebugTriggers(){exports.pointTriggers.clear()}exports.clearDebugTriggers=clearDebugTriggers,exports.DEBUG_TRIGGER_WORKFLOW_QUEUE_START=`DEBUG_TRIGGER_WORKFLOW_QUEUE_START`,exports.DEBUG_TRIGGER_WORKFLOW_ENQUEUE=`DEBUG_TRIGGER_WORKFLOW_ENQUEUE`,exports.DEBUG_TRIGGER_STEP_COMMIT=`DEBUG_TRIGGER_STEP_COMMIT`,exports.DEBUG_TRIGGER_INITWF_COMMIT=`DEBUG_TRIGGER_INITWF_COMMIT`})),require_wfqueue=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.wfQueueRunner=exports.WorkflowQueue=void 0;let dbos_1=require_dbos(),debugpoint_1=require_debugpoint(),utils_1=require_utils$3();exports.WorkflowQueue=class{name;concurrency;rateLimit;workerConcurrency;priorityEnabled=!1;partitionQueue=!1;constructor(name,arg2,rateLimit$1){if(this.name=name,dbos_1.DBOS.isInitialized()&&dbos_1.DBOS.logger.warn(`Workflow queue '${name}' is being created after DBOS initialization and will not be considered for dequeue.`),typeof arg2==`object`&&arg2?(this.concurrency=arg2.concurrency,this.rateLimit=arg2.rateLimit,this.workerConcurrency=arg2.workerConcurrency,this.priorityEnabled=arg2.priorityEnabled??!1,this.partitionQueue=arg2.partitionQueue??!1):(this.concurrency=arg2,this.rateLimit=rateLimit$1),exports.wfQueueRunner.wfQueuesByName.has(name))throw Error(`Workflow Queue '${name}' defined multiple times`);exports.wfQueueRunner.wfQueuesByName.set(name,this)}},exports.wfQueueRunner=new class{wfQueuesByName=new Map;isRunning=!1;interruptResolve;pollingIntervalMs=1e3;minPollingIntervalMs=1e3;maxPollingIntervalMs=12e4;stop(){this.isRunning&&(this.isRunning=!1,this.interruptResolve&&this.interruptResolve())}async dispatchLoop(exec){for(this.isRunning=!0;this.isRunning;){let timer,timeoutPromise=new Promise(resolve$1=>{timer=setTimeout(()=>{resolve$1()},this.pollingIntervalMs)});if(await Promise.race([timeoutPromise,new Promise((_,reject)=>this.interruptResolve=reject)]).catch(()=>{exec.logger.debug(`Workflow queue loop interrupted!`)}),clearTimeout(timer),!this.isRunning)break;for(let[_qn,q]of this.wfQueuesByName){let wfids=[];try{if(q.partitionQueue){let partitionKeys=await exec.systemDatabase.getQueuePartitions(q.name);for(let partitionKey of partitionKeys){let partitionWfids=await exec.systemDatabase.findAndMarkStartableWorkflows(q,exec.executorID,utils_1.globalParams.appVersion,partitionKey);wfids.push(...partitionWfids)}}else wfids=await exec.systemDatabase.findAndMarkStartableWorkflows(q,exec.executorID,utils_1.globalParams.appVersion,void 0)}catch(e){let err=e;`code`in err&&(err.code===`40001`||err.code===`55P03`)?(this.pollingIntervalMs=Math.min(this.maxPollingIntervalMs,this.pollingIntervalMs*2),exec.logger.warn(`Contention detected in queue thread for ${q.name}. Increasing polling interval to ${(this.pollingIntervalMs/1e3).toFixed(2)}s.`)):exec.logger.warn(`Error getting startable workflows: ${err.message}`),wfids=[]}wfids.length>0&&await(0,debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_WORKFLOW_QUEUE_START);for(let wfid of wfids)try{await exec.executeWorkflowId(wfid,{isQueueDispatch:!0})}catch(e){exec.logger.warn(`Could not execute workflow with id ${wfid}: ${e.message}`)}}this.pollingIntervalMs=Math.max(this.minPollingIntervalMs,this.pollingIntervalMs*.9)}}logRegisteredEndpoints(exec){let logger=exec.logger;logger.info(`Workflow queues:`);for(let[qn,q]of this.wfQueuesByName){let conc=q.concurrency===void 0?`No concurrency limit set`:`global concurrency limit: ${q.concurrency}`;logger.info(` ${qn}: ${conc}`);let workerconc=q.workerConcurrency===void 0?`No worker concurrency limit set`:`worker concurrency limit: ${q.workerConcurrency}`;logger.info(` ${qn}: ${workerconc}`)}}}})),require_debouncer=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DebouncerClient=exports.Debouncer=exports.debouncerWorkflowFunction=void 0;let node_crypto_1$2=__require(`node:crypto`),_1=require_src$4(),dbos_executor_1=require_dbos_executor(),decorators_1=require_decorators(),error_1=require_error(),utils_1=require_utils$3(),_DEBOUNCER_TOPIC=`DEBOUNCER_TOPIC`;exports.debouncerWorkflowFunction=async(initialDebouncePeriodMs,cfg,...args)=>{let workflowInputs=args,debounceDeadlineEpochMs=cfg.debounceTimeoutMs?Date.now()+cfg.debounceTimeoutMs:Number.MAX_VALUE,debouncePeriodMs=initialDebouncePeriodMs;for(;Date.now()<debounceDeadlineEpochMs;){let timeUntilDeadline=Math.max(debounceDeadlineEpochMs-Date.now(),0),timeoutMs=Math.min(debouncePeriodMs,timeUntilDeadline),message=await _1.DBOS.recv(_DEBOUNCER_TOPIC,timeoutMs/1e3);if(message===null)break;workflowInputs=message.args,debouncePeriodMs=message.debouncePeriodMs,await _1.DBOS.setEvent(message.messageID,message.messageID)}let methReg=(0,decorators_1.getFunctionRegistrationByName)(cfg.workflowClassName,cfg.workflowName);if(!methReg||!methReg.registeredFunction)throw Error(`Invalid workflow name provided to debouncer: ${cfg.workflowName}`);let func=methReg?.registeredFunction;await _1.DBOS.startWorkflow(func,cfg.startWorkflowParams)(...workflowInputs)},exports.Debouncer=class{cfg;constructor(params){this.cfg={workflowName:(0,decorators_1.getFunctionRegistration)(params.workflow)?.name??params.workflow.name,workflowClassName:(0,decorators_1.getRegisteredFunctionClassName)(params.workflow),startWorkflowParams:params.startWorkflowParams,debounceTimeoutMs:params.debounceTimeoutMs}}async debounce(debounceKey,debouncePeriodMs,...args){if(debouncePeriodMs<=0)throw Error(`debouncePeriodMs must be positive, not ${debouncePeriodMs}`);let cfg={...this.cfg};for(cfg.startWorkflowParams=this.cfg.startWorkflowParams?{...this.cfg.startWorkflowParams}:{},cfg.startWorkflowParams.workflowID=cfg.startWorkflowParams.workflowID??await _1.DBOS.randomUUID();;){let deduplicationID=`${cfg.workflowClassName}.${cfg.workflowName}-${debounceKey}`;try{return await _1.DBOS.startWorkflow(dbos_executor_1.DBOSExecutor.debouncerWorkflow,{queueName:utils_1.INTERNAL_QUEUE_NAME,enqueueOptions:{deduplicationID}})(debouncePeriodMs,cfg,...args),_1.DBOS.retrieveWorkflow(cfg.startWorkflowParams.workflowID)}catch(e){if(e instanceof Error&&(0,error_1.getDBOSErrorCode)(e)===error_1.QueueDedupIDDuplicated){let dedupWorkflowID=await _1.DBOS.runStep(async()=>await dbos_executor_1.DBOSExecutor.globalInstance?.systemDatabase.getDeduplicatedWorkflow(utils_1.INTERNAL_QUEUE_NAME,deduplicationID));if(dedupWorkflowID){let messageID=await _1.DBOS.randomUUID(),message={messageID,args,debouncePeriodMs};if(await _1.DBOS.send(dedupWorkflowID,message,_DEBOUNCER_TOPIC),!await _1.DBOS.getEvent(dedupWorkflowID,messageID,1e3))continue;let userWorkflowID=(await _1.DBOS.retrieveWorkflow(dedupWorkflowID).getWorkflowInputs())[1].startWorkflowParams.workflowID;return _1.DBOS.retrieveWorkflow(userWorkflowID)}else continue}else throw e}}}},exports.DebouncerClient=class{client;cfg;constructor(client,params){this.client=client,this.cfg={workflowName:params.workflowName,workflowClassName:params.workflowClassName||``,startWorkflowParams:params.startWorkflowParams,debounceTimeoutMs:params.debounceTimeoutMs}}async debounce(debounceKey,debouncePeriodMs,...args){if(debouncePeriodMs<=0)throw Error(`debouncePeriodMs must be positive, not ${debouncePeriodMs}`);let cfg={...this.cfg};for(cfg.startWorkflowParams=this.cfg.startWorkflowParams?{...this.cfg.startWorkflowParams}:{},cfg.startWorkflowParams.workflowID=cfg.startWorkflowParams.workflowID??String((0,node_crypto_1$2.randomUUID)());;){let deduplicationID=`${cfg.workflowClassName}.${cfg.workflowName}-${debounceKey}`;try{return await this.client.enqueue({workflowName:utils_1.DEBOUNCER_WORKLOW_NAME,queueName:utils_1.INTERNAL_QUEUE_NAME,deduplicationID},debouncePeriodMs,cfg,...args),this.client.retrieveWorkflow(cfg.startWorkflowParams.workflowID)}catch(e){if(e instanceof Error&&(0,error_1.getDBOSErrorCode)(e)===error_1.QueueDedupIDDuplicated){let dedupWorkflowID=await this.client.systemDatabase.getDeduplicatedWorkflow(utils_1.INTERNAL_QUEUE_NAME,deduplicationID);if(dedupWorkflowID){let messageID=String((0,node_crypto_1$2.randomUUID)()),message={messageID,args,debouncePeriodMs};if(await this.client.send(dedupWorkflowID,message,_DEBOUNCER_TOPIC),!await this.client.getEvent(dedupWorkflowID,messageID,1e3))continue;let userWorkflowID=(await this.client.retrieveWorkflow(dedupWorkflowID).getWorkflowInputs())[1].startWorkflowParams.workflowID;return this.client.retrieveWorkflow(userWorkflowID)}else continue}else throw e}}}}})),require_src$4=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MethodParameter=exports.ConfiguredInstance=exports.DebouncerClient=exports.Debouncer=exports.StatusString=exports.DBOSWorkflowConflictError=exports.Error=exports.WorkflowQueue=exports.ArgName=exports.DBOSDataType=exports.SchedulerMode=exports.DBOSClient=exports.DBOS=void 0;var dbos_1=require_dbos();Object.defineProperty(exports,`DBOS`,{enumerable:!0,get:function(){return dbos_1.DBOS}});var client_1=require_client();Object.defineProperty(exports,`DBOSClient`,{enumerable:!0,get:function(){return client_1.DBOSClient}});var scheduler_1=require_scheduler();Object.defineProperty(exports,`SchedulerMode`,{enumerable:!0,get:function(){return scheduler_1.SchedulerMode}});var decorators_1=require_decorators();Object.defineProperty(exports,`DBOSDataType`,{enumerable:!0,get:function(){return decorators_1.DBOSDataType}}),Object.defineProperty(exports,`ArgName`,{enumerable:!0,get:function(){return decorators_1.ArgName}});var wfqueue_1=require_wfqueue();Object.defineProperty(exports,`WorkflowQueue`,{enumerable:!0,get:function(){return wfqueue_1.WorkflowQueue}}),exports.Error=__importStar(require_error());var error_1=require_error();Object.defineProperty(exports,`DBOSWorkflowConflictError`,{enumerable:!0,get:function(){return error_1.DBOSWorkflowConflictError}});var workflow_1=require_workflow();Object.defineProperty(exports,`StatusString`,{enumerable:!0,get:function(){return workflow_1.StatusString}});var debouncer_1=require_debouncer();Object.defineProperty(exports,`Debouncer`,{enumerable:!0,get:function(){return debouncer_1.Debouncer}}),Object.defineProperty(exports,`DebouncerClient`,{enumerable:!0,get:function(){return debouncer_1.DebouncerClient}});var decorators_2=require_decorators();Object.defineProperty(exports,`ConfiguredInstance`,{enumerable:!0,get:function(){return decorators_2.ConfiguredInstance}}),Object.defineProperty(exports,`MethodParameter`,{enumerable:!0,get:function(){return decorators_2.MethodParameter}})})),require_crontab=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TimeMatcher=exports.convertExpression=exports.validateCrontab=exports.convertAsterisksToRanges=void 0;function removeExtraSpaces(str){return str.replace(/\s{2,}/g,` `).trim()}function prependSecondExpression(expressions){return expressions.length===5?[`0`].concat(expressions):expressions}let months=[`january`,`february`,`march`,`april`,`may`,`june`,`july`,`august`,`september`,`october`,`november`,`december`],shortMonths=[`jan`,`feb`,`mar`,`apr`,`may`,`jun`,`jul`,`aug`,`sep`,`oct`,`nov`,`dec`];function convertMonthNameI(expression,items){for(let i=0;i<items.length;i++)expression=expression.replace(new RegExp(items[i],`gi`),`${i+1}`);return expression}function monthNamesConversion(monthExpression){return monthExpression=convertMonthNameI(monthExpression,months),monthExpression=convertMonthNameI(monthExpression,shortMonths),monthExpression}let weekDays=[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`],shortWeekDays=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`];function convertWeekDayName(weekExpression,items){for(let i=0;i<items.length;i++)weekExpression=weekExpression.replace(new RegExp(items[i],`gi`),`${i}`);return weekExpression}function weekDayNamesConversion(expression){return expression=expression.replace(`7`,`0`),expression=convertWeekDayName(expression,weekDays),convertWeekDayName(expression,shortWeekDays)}function convertAsterisk(expression,replacement){return expression.indexOf(`*`)===-1?expression:expression.replace(`*`,replacement)}function convertAsterisksToRanges(expressions){return expressions[0]=convertAsterisk(expressions[0],`0-59`),expressions[1]=convertAsterisk(expressions[1],`0-59`),expressions[2]=convertAsterisk(expressions[2],`0-23`),expressions[3]=convertAsterisk(expressions[3],`1-31`),expressions[4]=convertAsterisk(expressions[4],`1-12`),expressions[5]=convertAsterisk(expressions[5],`0-6`),expressions}exports.convertAsterisksToRanges=convertAsterisksToRanges;function replaceWithRange(expression,text,init,end){let numbers=[],last=parseInt(end),first=parseInt(init);first>last&&(last=parseInt(init),first=parseInt(end));for(let i=first;i<=last;i++)numbers.push(i.toString());return expression.replace(new RegExp(text,`i`),numbers.join())}function convertRange(expression){let rangeRegEx=/(\d+)-(\d+)/,match=rangeRegEx.exec(expression);for(;match!==null&&match.length>0;)expression=replaceWithRange(expression,match[0],match[1],match[2]),match=rangeRegEx.exec(expression);return expression}function convertAllRanges(expressions){for(let i=0;i<expressions.length;i++)expressions[i]=convertRange(expressions[i]);return expressions}function convertSteps(expressions){let stepValuePattern=/^(.+)\/(\w+)$/;for(let i=0;i<expressions.length;i++){let match=stepValuePattern.exec(expressions[i]);if(match!==null&&match.length>0){let baseDivider=match[2];if(isNaN(parseInt(baseDivider)))throw Error(baseDivider+` is not a valid step value`);let values=match[1].split(`,`),stepValues=[],divider=parseInt(baseDivider,10);for(let j=0;j<=values.length;j++){let value=parseInt(values[j],10);value%divider===0&&stepValues.push(`${value}`)}expressions[i]=stepValues.join(`,`)}}return expressions}function normalizeIntegers(expressions){for(let i=0;i<expressions.length;i++){let numbers=expressions[i].split(`,`);for(let j=0;j<numbers.length;j++)numbers[j]=parseInt(numbers[j]).toString();expressions[i]=numbers.join(`,`)}return expressions}let validationRegex=/^(?:\d+|\*|\*\/\d+)$/;function isValidExpression(expression,min,max){let options=expression.split(`,`);for(let option of options){let optionAsInt=parseInt(option,10);if(!Number.isNaN(optionAsInt)&&(optionAsInt<min||optionAsInt>max)||!validationRegex.test(option))return!1}return!0}function isInvalidSecond(expression){return!isValidExpression(expression,0,59)}function isInvalidMinute(expression){return!isValidExpression(expression,0,59)}function isInvalidHour(expression){return!isValidExpression(expression,0,23)}function isInvalidDayOfMonth(expression){return!isValidExpression(expression,1,31)}function isInvalidMonth(expression){return!isValidExpression(expression,1,12)}function isInvalidWeekDay(expression){return!isValidExpression(expression,0,7)}function validateFields(patterns,executablePatterns){if(isInvalidSecond(executablePatterns[0]))throw Error(`${patterns[0]} is a invalid expression for second`);if(isInvalidMinute(executablePatterns[1]))throw Error(`${patterns[1]} is a invalid expression for minute`);if(isInvalidHour(executablePatterns[2]))throw Error(`${patterns[2]} is a invalid expression for hour`);if(isInvalidDayOfMonth(executablePatterns[3]))throw Error(`${patterns[3]} is a invalid expression for day of month`);if(isInvalidMonth(executablePatterns[4]))throw Error(`${patterns[4]} is a invalid expression for month`);if(isInvalidWeekDay(executablePatterns[5]))throw Error(`${patterns[5]} is a invalid expression for week day`)}function validateCrontab(pattern){if(typeof pattern!=`string`)throw TypeError(`pattern must be a string!`);let patterns=pattern.split(` `),executablePatterns=convertExpression(pattern).split(` `);return patterns.length===5&&patterns.unshift(`0`),validateFields(patterns,executablePatterns),executablePatterns.join(` `)}exports.validateCrontab=validateCrontab;function convertExpression(crontab){let expressions=removeExtraSpaces(crontab).split(` `);return expressions=prependSecondExpression(expressions),expressions[4]=monthNamesConversion(expressions[4]),expressions[5]=weekDayNamesConversion(expressions[5]),expressions=convertAsterisksToRanges(expressions),expressions=convertAllRanges(expressions),expressions=convertSteps(expressions),expressions=normalizeIntegers(expressions),expressions.join(` `)}exports.convertExpression=convertExpression;function matchPattern(pattern,nvalue){let value=`${nvalue}`;return pattern.indexOf(`,`)===-1?pattern===value:pattern.split(`,`).includes(value)}exports.TimeMatcher=class{#e;#t;#n;#r;constructor(pattern,timezone){validateCrontab(pattern),this.#e=convertExpression(pattern),this.#r=timezone,this.#t=this.#e.split(` `),this.#n=this.#r?new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`,fractionalSecondDigits:3,timeZone:this.#r}):null}match(date){date=this.#a(date);let runOnSecond=matchPattern(this.#t[0],date.getSeconds()),runOnMinute=matchPattern(this.#t[1],date.getMinutes()),runOnHour=matchPattern(this.#t[2],date.getHours()),runOnDay=this.#i(date);return runOnSecond&&runOnMinute&&runOnHour&&runOnDay}#i(date){let runOnDay=matchPattern(this.#t[3],date.getDate()),runOnMonth=matchPattern(this.#t[4],date.getMonth()+1),runOnWeekDay=matchPattern(this.#t[5],date.getDay());return runOnDay&&runOnMonth&&runOnWeekDay}nextWakeupTime(date){let time=typeof date==`number`?date:date.getTime(),msec=Math.round(time);for(let maxIters=3600;--maxIters;){msec+=1e3;let nd=new Date(msec);if(this.match(nd))return nd}return new Date(msec)}#a(date){return this.#n?new Date(this.#n.format(date)):typeof date==`number`?new Date(date):date}}})),require_scheduler=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ScheduledReceiver=exports.SchedulerMode=void 0;let __1=require_src$4(),utils_1=require_utils$3(),crontab_1=require_crontab();var SchedulerMode;(function(SchedulerMode){SchedulerMode.ExactlyOncePerInterval=`ExactlyOncePerInterval`,SchedulerMode.ExactlyOncePerIntervalWhenActive=`ExactlyOncePerIntervalWhenActive`})(SchedulerMode||(exports.SchedulerMode=SchedulerMode={}));let SCHEDULER_EVENT_SERVICE_NAME=`dbos.scheduler`;exports.ScheduledReceiver=class ScheduledReceiver{#e=new AbortController;#t=[];constructor(){__1.DBOS.registerLifecycleCallback(this)}async initialize(){for(let regOp of __1.DBOS.getAssociatedInfo(SCHEDULER_EVENT_SERVICE_NAME)){if(regOp.methodReg.registeredFunction===void 0){__1.DBOS.logger.warn(`Scheduled workflow ${regOp.methodReg.className}.${regOp.methodReg.name} is missing registered function; skipping`);continue}let{crontab,mode,queueName}=regOp.methodConfig;if(!crontab){__1.DBOS.logger.warn(`Scheduled workflow ${regOp.methodReg.className}.${regOp.methodReg.name} is missing crontab; skipping`);continue}let timeMatcher=new crontab_1.TimeMatcher(crontab),promise=ScheduledReceiver.#n(regOp.methodReg,timeMatcher,mode??SchedulerMode.ExactlyOncePerIntervalWhenActive,queueName,this.#e.signal);this.#t.push(promise)}}async destroy(){this.#e.abort();let promises=this.#t.splice(0);await Promise.allSettled(promises)}logRegisteredEndpoints(){__1.DBOS.logger.info(`Scheduled endpoints:`);for(let regOp of __1.DBOS.getAssociatedInfo(SCHEDULER_EVENT_SERVICE_NAME)){let name=`${regOp.methodReg.className}.${regOp.methodReg.name}`,{crontab,mode}=regOp.methodConfig;crontab?__1.DBOS.logger.info(` ${name} @ ${crontab}; ${mode??SchedulerMode.ExactlyOncePerIntervalWhenActive}`):__1.DBOS.logger.info(` ${name} is missing crontab; skipping`)}}static async#n(methodReg,timeMatcher,mode,queueName,signal){let name=`${methodReg.className}.${methodReg.name}`,lastExec=new Date().setMilliseconds(0);if(mode===SchedulerMode.ExactlyOncePerInterval){let lastState=await __1.DBOS.getEventDispatchState(SCHEDULER_EVENT_SERVICE_NAME,name,`lastState`);lastState?.value&&(lastExec=parseFloat(lastState.value))}for(;!signal.aborted;){let nextExec=timeMatcher.nextWakeupTime(lastExec).getTime(),sleepTime=nextExec-Date.now();if(sleepTime>0&&await new Promise((resolve$1,reject)=>{let timeoutID,onAbort=()=>{clearTimeout(timeoutID),reject(Error(`Abort signal received`))};signal.addEventListener(`abort`,onAbort,{once:!0}),signal.aborted&&(signal.removeEventListener(`abort`,onAbort),reject(Error(`Abort signal received`))),timeoutID=setTimeout(()=>{signal.removeEventListener(`abort`,onAbort),resolve$1()},sleepTime)}),signal.aborted)break;if(!timeMatcher.match(nextExec)){lastExec=nextExec;continue}let date=new Date(nextExec);if(methodReg.workflowConfig&&methodReg.registeredFunction){let workflowID=`sched-${name}-${date.toISOString()}`,wfParams={workflowID,queueName:queueName??utils_1.INTERNAL_QUEUE_NAME};__1.DBOS.logger.debug(`Executing scheduled workflow ${workflowID}`),await __1.DBOS.startWorkflow(methodReg.registeredFunction,wfParams)(date,new Date)}else __1.DBOS.logger.error(`${name} is @scheduled but not a workflow`);lastExec=await ScheduledReceiver.#r(name,nextExec)}}static async#r(name,time){try{let state={service:SCHEDULER_EVENT_SERVICE_NAME,workflowFnName:name,key:`lastState`,value:`${time}`,updateTime:time},newState=await __1.DBOS.upsertEventDispatchState(state),dbTime=parseFloat(newState.value);if(dbTime&&dbTime>time)return dbTime}catch(e){let err=e;__1.DBOS.logger.warn(`Scheduler caught an error writing to system DB: ${err.message}`),__1.DBOS.logger.error(e)}return time}static registerScheduled(func,config){let{regInfo}=__1.DBOS.associateFunctionWithInfo(SCHEDULER_EVENT_SERVICE_NAME,func,{ctorOrProto:config.ctorOrProto,className:config.className,name:config.name??func.name}),schedRegInfo=regInfo;schedRegInfo.crontab=config.crontab,schedRegInfo.mode=config.mode,schedRegInfo.queueName=config.queueName}}})),require_protocol=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.GetMetricsResponse=exports.MetricDataOutput=exports.GetMetricsRequest=exports.RetentionResponse=exports.RetentionRequest=exports.ForkWorkflowResponse=exports.ForkWorkflowRequest=exports.ListStepsResponse=exports.ListStepsRequest=exports.ExistPendingWorkflowsResponse=exports.ExistPendingWorkflowsRequest=exports.GetWorkflowResponse=exports.GetWorkflowRequest=exports.ListQueuedWorkflowsResponse=exports.ListQueuedWorkflowsRequest=exports.ListWorkflowsResponse=exports.ListWorkflowsRequest=exports.WorkflowSteps=exports.WorkflowsOutput=exports.RestartResponse=exports.RestartRequest=exports.ResumeResponse=exports.ResumeRequest=exports.CancelResponse=exports.CancelRequest=exports.RecoveryResponse=exports.RecoveryRequest=exports.ExecutorInfoResponse=exports.BaseResponse=exports.MessageType=void 0;let serialize_error_1=require_serialize_error();var MessageType;(function(MessageType){MessageType.EXECUTOR_INFO=`executor_info`,MessageType.RECOVERY=`recovery`,MessageType.CANCEL=`cancel`,MessageType.LIST_WORKFLOWS=`list_workflows`,MessageType.LIST_QUEUED_WORKFLOWS=`list_queued_workflows`,MessageType.RESUME=`resume`,MessageType.RESTART=`restart`,MessageType.GET_WORKFLOW=`get_workflow`,MessageType.EXIST_PENDING_WORKFLOWS=`exist_pending_workflows`,MessageType.LIST_STEPS=`list_steps`,MessageType.FORK_WORKFLOW=`fork_workflow`,MessageType.RETENTION=`retention`,MessageType.GET_METRICS=`get_metrics`})(MessageType||(exports.MessageType=MessageType={}));var BaseResponse=class{type;request_id;error_message;constructor(type,request_id,error_message){this.type=type,this.request_id=request_id,this.error_message=error_message}};exports.BaseResponse=BaseResponse,exports.ExecutorInfoResponse=class extends BaseResponse{executor_id;application_version;hostname;language;dbos_version;constructor(request_id,executor_id,application_version,hostname,language,dbos_version,error_message){super(MessageType.EXECUTOR_INFO,request_id,error_message),this.executor_id=executor_id,this.application_version=application_version,this.hostname=hostname,this.language=language,this.dbos_version=dbos_version}},exports.RecoveryRequest=class{type=MessageType.RECOVERY;request_id;executor_ids;constructor(request_id,executor_ids){this.request_id=request_id,this.executor_ids=executor_ids}},exports.RecoveryResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RECOVERY,request_id,error_message),this.success=success}},exports.CancelRequest=class{type=MessageType.CANCEL;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.CancelResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.CANCEL,request_id,error_message),this.success=success}},exports.ResumeRequest=class{type=MessageType.RESUME;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.ResumeResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RESUME,request_id,error_message),this.success=success}},exports.RestartRequest=class{type=MessageType.RESTART;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.RestartResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RESTART,request_id,error_message),this.success=success}},exports.WorkflowsOutput=class{WorkflowUUID;Status;WorkflowName;WorkflowClassName;WorkflowConfigName;AuthenticatedUser;AssumedRole;AuthenticatedRoles;Input;Output;Request;Error;CreatedAt;UpdatedAt;QueueName;ApplicationVersion;ExecutorID;WorkflowTimeoutMS;WorkflowDeadlineEpochMS;DeduplicationID;Priority;QueuePartitionKey;ForkedFrom;constructor(info){this.WorkflowUUID=info.workflowID,this.Status=info.status,this.WorkflowName=info.workflowName,this.WorkflowClassName=info.workflowClassName?info.workflowClassName:void 0,this.WorkflowConfigName=info.workflowConfigName?info.workflowConfigName:void 0,this.AuthenticatedUser=info.authenticatedUser?info.authenticatedUser:void 0,this.AssumedRole=info.assumedRole?info.assumedRole:void 0,this.AuthenticatedRoles=(info.authenticatedRoles??[]).length>0?JSON.stringify(info.authenticatedRoles):void 0,this.Input=info.input?JSON.stringify(info.input):void 0,this.Output=info.output?JSON.stringify(info.output):void 0,this.Request=info.request?JSON.stringify(info.request):void 0,this.Error=info.error?JSON.stringify((0,serialize_error_1.serializeError)(info.error)):void 0,this.CreatedAt=info.createdAt?String(info.createdAt):void 0,this.UpdatedAt=info.updatedAt?String(info.updatedAt):void 0,this.QueueName=info.queueName?info.queueName:void 0,this.ApplicationVersion=info.applicationVersion,this.ExecutorID=info.executorId,this.WorkflowTimeoutMS=info.timeoutMS===void 0?void 0:String(info.timeoutMS),this.WorkflowDeadlineEpochMS=info.deadlineEpochMS===void 0?void 0:String(info.deadlineEpochMS),this.DeduplicationID=info.deduplicationID,this.Priority=String(info.priority),this.QueuePartitionKey=info.queuePartitionKey,this.ForkedFrom=info.forkedFrom}},exports.WorkflowSteps=class{function_id;function_name;output;error;child_workflow_id;started_at_epoch_ms;completed_at_epoch_ms;constructor(info){this.function_id=info.functionID,this.function_name=info.name,this.output=info.output?JSON.stringify(info.output):void 0,this.error=info.error?JSON.stringify((0,serialize_error_1.serializeError)(info.error)):void 0,this.child_workflow_id=info.childWorkflowID??void 0,this.started_at_epoch_ms=info.startedAtEpochMs===void 0?void 0:String(info.startedAtEpochMs),this.completed_at_epoch_ms=info.completedAtEpochMs===void 0?void 0:String(info.completedAtEpochMs)}},exports.ListWorkflowsRequest=class{type=MessageType.LIST_WORKFLOWS;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.ListWorkflowsResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.LIST_WORKFLOWS,request_id,error_message),this.output=output}},exports.ListQueuedWorkflowsRequest=class{type=MessageType.LIST_QUEUED_WORKFLOWS;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.ListQueuedWorkflowsResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.LIST_QUEUED_WORKFLOWS,request_id,error_message),this.output=output}},exports.GetWorkflowRequest=class{type=MessageType.GET_WORKFLOW;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.GetWorkflowResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.GET_WORKFLOW,request_id,error_message),this.output=output}},exports.ExistPendingWorkflowsRequest=class{type=MessageType.EXIST_PENDING_WORKFLOWS;request_id;executor_id;application_version;constructor(request_id,executor_id,application_version){this.request_id=request_id,this.executor_id=executor_id,this.application_version=application_version}},exports.ExistPendingWorkflowsResponse=class extends BaseResponse{exist;constructor(request_id,exist,error_message){super(MessageType.EXIST_PENDING_WORKFLOWS,request_id,error_message),this.exist=exist}},exports.ListStepsRequest=class{type=MessageType.LIST_STEPS;request_id;workflow_id;constructor(request_id,workflow_id){this.request_id=request_id,this.workflow_id=workflow_id}},exports.ListStepsResponse=class extends BaseResponse{output;constructor(request_id,output,error_message){super(MessageType.LIST_STEPS,request_id,error_message),this.output=output}},exports.ForkWorkflowRequest=class{type=MessageType.FORK_WORKFLOW;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.ForkWorkflowResponse=class extends BaseResponse{new_workflow_id;constructor(request_id,new_workflow_id,error_message){super(MessageType.FORK_WORKFLOW,request_id,error_message),this.new_workflow_id=new_workflow_id}},exports.RetentionRequest=class{type=MessageType.RETENTION;request_id;body;constructor(request_id,body){this.request_id=request_id,this.body=body}},exports.RetentionResponse=class extends BaseResponse{success;constructor(request_id,success,error_message){super(MessageType.RETENTION,request_id,error_message),this.success=success}},exports.GetMetricsRequest=class{type=MessageType.GET_METRICS;request_id;start_time;end_time;metric_class;constructor(request_id,start_time,end_time,metric_class){this.request_id=request_id,this.start_time=start_time,this.end_time=end_time,this.metric_class=metric_class}},exports.MetricDataOutput=class{metric_type;metric_name;value;constructor(metric_type,metric_name,value){this.metric_type=metric_type,this.metric_name=metric_name,this.value=value}},exports.GetMetricsResponse=class extends BaseResponse{metrics;constructor(request_id,metrics,error_message){super(MessageType.GET_METRICS,request_id,error_message),this.metrics=metrics}}})),require_adminserver=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOSAdminServer=exports.WorkflowQueuesMetadataUrl=exports.DeactivateUrl=exports.PerfUrl=exports.HealthUrl=exports.WorkflowRecoveryUrl=exports.WorkflowUUIDHeader=void 0;let http$2=__importStar(__require(`http`)),url=__importStar(__require(`url`)),error_1=require_error(),net$1=__importStar(__require(`net`)),perf_hooks_1=__require(`perf_hooks`),utils_1=require_utils$3(),wfqueue_1=require_wfqueue(),workflow_management_1=require_workflow_management(),protocol=__importStar(require_protocol());exports.WorkflowUUIDHeader=`dbos-idempotency-key`,exports.WorkflowRecoveryUrl=`/dbos-workflow-recovery`,exports.HealthUrl=`/dbos-healthz`,exports.PerfUrl=`/dbos-perf`,exports.DeactivateUrl=`/deactivate`,exports.WorkflowQueuesMetadataUrl=`/dbos-workflow-queues-metadata`;async function parseJsonBody(req){return new Promise((resolve$1,reject)=>{let body=``;req.on(`data`,chunk=>{body+=String(chunk)}),req.on(`end`,()=>{try{resolve$1(body?JSON.parse(body):{})}catch{reject(Error(`Invalid JSON`))}}),req.on(`error`,reject)})}function sendJson(res,statusCode,data){res.writeHead(statusCode,{"Content-Type":`application/json`,"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`}),res.end(JSON.stringify(data))}function sendText(res,statusCode,text){res.writeHead(statusCode,{"Content-Type":`text/plain`,"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`}),res.end(text)}function sendNoContent(res){res.writeHead(204,{"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`}),res.end()}function matchPath(pattern,pathname){let patternParts=pattern.split(`/`),pathParts=pathname.split(`/`);if(patternParts.length!==pathParts.length)return null;let params={};for(let i=0;i<patternParts.length;i++){let patternPart=patternParts[i],pathPart=pathParts[i];if(patternPart.startsWith(`:`)){let paramName=patternPart.substring(1);params[paramName]=pathPart}else if(patternPart!==pathPart)return null}return params}exports.DBOSAdminServer=class DBOSAdminServer{static setupAdminApp(dbosExec){let routes=[];return DBOSAdminServer.registerHealthEndpoint(dbosExec,routes),DBOSAdminServer.registerRecoveryEndpoint(dbosExec,routes),DBOSAdminServer.registerPerfEndpoint(dbosExec,routes),DBOSAdminServer.registerDeactivateEndpoint(dbosExec,routes),DBOSAdminServer.registerCancelWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerResumeWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerRestartWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerQueueMetadataEndpoint(dbosExec,routes),DBOSAdminServer.registerListWorkflowStepsEndpoint(dbosExec,routes),DBOSAdminServer.registerListWorkflowsEndpoint(dbosExec,routes),DBOSAdminServer.registerListQueuedWorkflowsEndpoint(dbosExec,routes),DBOSAdminServer.registerGetWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerForkWorkflowEndpoint(dbosExec,routes),DBOSAdminServer.registerGarbageCollectEndpoint(dbosExec,routes),DBOSAdminServer.registerGlobalTimeoutEndpoint(dbosExec,routes),http$2.createServer(async(req,res)=>{if(req.method===`OPTIONS`){res.writeHead(200,{"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`GET, POST, OPTIONS`,"Access-Control-Allow-Headers":`Content-Type`,"Access-Control-Max-Age":`86400`}),res.end();return}let pathname=url.parse(req.url||``,!0).pathname||``,routeFound=!1;for(let route of routes)if(req.method===route.method){let params=matchPath(route.path,pathname);if(params!==null){routeFound=!0;try{await route.handler(req,res,params)}catch(error){dbosExec.logger.error(`Request handler error: ${String(error)}`),sendJson(res,500,{error:`Internal server error`})}break}}routeFound||(res.writeHead(404,{"Content-Type":`text/plain`}),res.end(`Not Found`))})}static async checkPortAvailabilityIPv4Ipv6(port,logger){try{await this.checkPortAvailability(port,`127.0.0.1`)}catch(error){let err=error;if(err.code===`EADDRINUSE`)throw logger.warn(`Port ${port} is already used for IPv4 address "127.0.0.1". Please use the -p option to choose another port.\n${err.message}`),error;logger.warn(`Error occurred while checking port availability for IPv4 address "127.0.0.1" : ${err.code}\n${err.message}`)}try{await this.checkPortAvailability(port,`::1`)}catch(error){let err=error;if(err.code===`EADDRINUSE`)throw logger.warn(`Port ${port} is already used for IPv6 address "::1". Please use the -p option to choose another port.\n${err.message}`),error;logger.warn(`Error occurred while checking port availability for IPv6 address "::1" : ${err.code}\n${err.message}`)}}static async checkPortAvailability(port,host){return new Promise((resolve$1,reject)=>{let server=new net$1.Server;server.on(`error`,error=>{reject(error)}),server.on(`listening`,()=>{server.close(),resolve$1()}),server.listen({port,host},()=>{resolve$1()})})}static registerHealthEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.HealthUrl,handler:async(req,res)=>(sendText(res,200,`healthy`),Promise.resolve())}),dbosExec.logger.debug(`DBOS Server Registered Healthz GET ${exports.HealthUrl}`)}static registerQueueMetadataEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.WorkflowQueuesMetadataUrl,handler:async(req,res)=>{let queueDetailsArray=[];return wfqueue_1.wfQueueRunner.wfQueuesByName.forEach((q,qn)=>{queueDetailsArray.push({name:qn,concurrency:q.concurrency,workerConcurrency:q.workerConcurrency,rateLimit:q.rateLimit})}),sendJson(res,200,queueDetailsArray),Promise.resolve()}}),dbosExec.logger.debug(`DBOS Server Registered Queue Metadata GET ${exports.WorkflowQueuesMetadataUrl}`)}static registerRecoveryEndpoint(dbosExec,routes){routes.push({method:`POST`,path:exports.WorkflowRecoveryUrl,handler:async(req,res)=>{let executorIDs=await parseJsonBody(req);dbosExec.logger.info(`Recovering workflows for executors: `+executorIDs.toString());let recoverHandles=await dbosExec.recoverPendingWorkflows(executorIDs);sendJson(res,200,await Promise.allSettled(recoverHandles.map(i=>i.workflowID)).then(results=>results.filter(i=>i.status===`fulfilled`).map(i=>i.value)))}}),dbosExec.logger.debug(`DBOS Server Registered Recovery POST ${exports.WorkflowRecoveryUrl}`)}static lastELU=perf_hooks_1.performance.eventLoopUtilization();static registerPerfEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.PerfUrl,handler:async(req,res)=>{let currELU=perf_hooks_1.performance.eventLoopUtilization();return sendJson(res,200,perf_hooks_1.performance.eventLoopUtilization(currELU,DBOSAdminServer.lastELU)),DBOSAdminServer.lastELU=currELU,Promise.resolve()}}),dbosExec.logger.debug(`DBOS Server Registered Perf GET ${exports.PerfUrl}`)}static isDeactivated=!1;static registerDeactivateEndpoint(dbosExec,routes){routes.push({method:`GET`,path:exports.DeactivateUrl,handler:async(req,res)=>{DBOSAdminServer.isDeactivated||=(dbosExec.logger.info(`Deactivating DBOS executor ${utils_1.globalParams.executorID} with version ${utils_1.globalParams.appVersion}. This executor will complete existing workflows but will not create new workflows.`),!0),await dbosExec.deactivateEventReceivers(!1),sendText(res,200,`Deactivated`)}}),dbosExec.logger.debug(`DBOS Server Registered Deactivate GET ${exports.DeactivateUrl}`)}static registerGarbageCollectEndpoint(dbosExec,routes){routes.push({method:`POST`,path:`/dbos-garbage-collect`,handler:async(req,res)=>{let body=await parseJsonBody(req);await dbosExec.systemDatabase.garbageCollect(body.cutoff_epoch_timestamp_ms,body.rows_threshold),sendNoContent(res)}})}static registerGlobalTimeoutEndpoint(dbosExec,routes){routes.push({method:`POST`,path:`/dbos-global-timeout`,handler:async(req,res)=>{let body=await parseJsonBody(req);await(0,workflow_management_1.globalTimeout)(dbosExec.systemDatabase,body.cutoff_epoch_timestamp_ms),sendNoContent(res)}})}static registerCancelWorkflowEndpoint(dbosExec,routes){let workflowCancelUrl=`/workflows/:workflow_id/cancel`;routes.push({method:`POST`,path:workflowCancelUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id;await dbosExec.cancelWorkflow(workflowId),sendNoContent(res)}}),dbosExec.logger.debug(`DBOS Server Registered Cancel Workflow POST ${workflowCancelUrl}`)}static registerResumeWorkflowEndpoint(dbosExec,routes){let workflowResumeUrl=`/workflows/:workflow_id/resume`;routes.push({method:`POST`,path:workflowResumeUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id;dbosExec.logger.info(`Resuming workflow with ID: ${workflowId}`);try{await dbosExec.resumeWorkflow(workflowId),sendNoContent(res)}catch(e){let errorMessage=``;errorMessage=e instanceof error_1.DBOSError?e.message:`Unknown error`,dbosExec.logger.error(`Error resuming workflow ${workflowId}: ${errorMessage}`),sendJson(res,500,{error:`Error resuming workflow ${workflowId}: ${errorMessage}`})}}}),dbosExec.logger.debug(`DBOS Server Registered Resume Workflow POST ${workflowResumeUrl}`)}static registerRestartWorkflowEndpoint(dbosExec,routes){let workflowRestartUrl=`/workflows/:workflow_id/restart`;routes.push({method:`POST`,path:workflowRestartUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id;dbosExec.logger.info(`Restarting workflow: ${workflowId} with a new id`),sendJson(res,200,{workflow_id:await dbosExec.forkWorkflow(workflowId,0)})}}),dbosExec.logger.debug(`DBOS Server Registered Restart Workflow POST ${workflowRestartUrl}`)}static registerForkWorkflowEndpoint(dbosExec,routes){let workflowForkUrl=`/workflows/:workflow_id/fork`;routes.push({method:`POST`,path:workflowForkUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id,body=await parseJsonBody(req);if(body.start_step===void 0){sendJson(res,400,{error:`Missing start_step in request body`});return}dbosExec.logger.info(`Forking workflow: ${workflowId} from step ${body.start_step} with a new id`);try{sendJson(res,200,{workflow_id:await dbosExec.forkWorkflow(workflowId,body.start_step,{newWorkflowID:body.new_workflow_id,applicationVersion:body.application_version,timeoutMS:body.timeout_ms})})}catch(e){let errorMessage=``;errorMessage=e instanceof error_1.DBOSError?e.message:`Unknown error`,dbosExec.logger.error(`Error forking workflow ${workflowId}: ${errorMessage}`),sendJson(res,500,{error:`Error forking workflow ${workflowId}: ${errorMessage}`})}}}),dbosExec.logger.debug(`DBOS Server Registered Fork Workflow POST ${workflowForkUrl}`)}static registerListWorkflowStepsEndpoint(dbosExec,routes){let workflowStepsUrl=`/workflows/:workflow_id/steps`;routes.push({method:`GET`,path:workflowStepsUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id,result=(await dbosExec.listWorkflowSteps(workflowId))?.map(step=>new protocol.WorkflowSteps(step));sendJson(res,200,result)}}),dbosExec.logger.debug(`DBOS Server Registered List Workflow steps Get ${workflowStepsUrl}`)}static registerListWorkflowsEndpoint(dbosExec,routes){let listWorkflowsUrl=`/workflows`;routes.push({method:`POST`,path:listWorkflowsUrl,handler:async(req,res)=>{let body=await parseJsonBody(req),input={workflowIDs:body.workflow_uuids,workflowName:body.workflow_name,authenticatedUser:body.authenticated_user,startTime:body.start_time,endTime:body.end_time,status:body.status,applicationVersion:body.application_version,forkedFrom:body.fork_from,limit:body.limit,offset:body.offset,sortDesc:body.sort_desc,workflow_id_prefix:body.workflow_id_prefix,loadInput:body.load_input??!1,loadOutput:body.load_output??!1};sendJson(res,200,(await dbosExec.listWorkflows(input)).map(wf=>new protocol.WorkflowsOutput(wf)))}}),dbosExec.logger.debug(`DBOS Server Registered List Workflows POST ${listWorkflowsUrl}`)}static registerListQueuedWorkflowsEndpoint(dbosExec,routes){let listQueuedWorkflowsUrl=`/queues`;routes.push({method:`POST`,path:listQueuedWorkflowsUrl,handler:async(req,res)=>{let body=await parseJsonBody(req),input={workflowName:body.workflow_name,startTime:body.start_time,endTime:body.end_time,status:body.status,forkedFrom:body.fork_from,queueName:body.queue_name,limit:body.limit,offset:body.offset,sortDesc:body.sort_desc,loadInput:body.load_input??!1};sendJson(res,200,(await dbosExec.listQueuedWorkflows(input)).map(wf=>new protocol.WorkflowsOutput(wf)))}}),dbosExec.logger.debug(`DBOS Server Registered List Queued Workflows POST ${listQueuedWorkflowsUrl}`)}static registerGetWorkflowEndpoint(dbosExec,routes){let getWorkflowUrl=`/workflows/:workflow_id`;routes.push({method:`GET`,path:getWorkflowUrl,handler:async(req,res,params)=>{let workflowId=params.workflow_id,workflow=await dbosExec.getWorkflowStatus(workflowId);workflow?sendJson(res,200,new protocol.WorkflowsOutput(workflow)):sendJson(res,404,{error:`Workflow ${workflowId} not found`})}}),dbosExec.logger.debug(`DBOS Server Registered Get Workflow GET ${getWorkflowUrl}`)}}})),require_constants=__commonJSMin(((exports,module)=>{let BINARY_TYPES=[`nodebuffer`,`arraybuffer`,`fragments`],hasBlob=typeof Blob<`u`;hasBlob&&BINARY_TYPES.push(`blob`),module.exports={BINARY_TYPES,EMPTY_BUFFER:Buffer.alloc(0),GUID:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,hasBlob,kForOnEventAttribute:Symbol(`kIsForOnEventAttribute`),kListener:Symbol(`kListener`),kStatusCode:Symbol(`status-code`),kWebSocket:Symbol(`websocket`),NOOP:()=>{}}})),require_buffer_util=__commonJSMin(((exports,module)=>{let{EMPTY_BUFFER}=require_constants(),FastBuffer=Buffer[Symbol.species];function concat(list,totalLength){if(list.length===0)return EMPTY_BUFFER;if(list.length===1)return list[0];let target=Buffer.allocUnsafe(totalLength),offset=0;for(let i=0;i<list.length;i++){let buf=list[i];target.set(buf,offset),offset+=buf.length}return offset<totalLength?new FastBuffer(target.buffer,target.byteOffset,offset):target}function _mask(source,mask,output,offset,length){for(let i=0;i<length;i++)output[offset+i]=source[i]^mask[i&3]}function _unmask(buffer,mask){for(let i=0;i<buffer.length;i++)buffer[i]^=mask[i&3]}function toArrayBuffer(buf){return buf.length===buf.buffer.byteLength?buf.buffer:buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.length)}function toBuffer(data){if(toBuffer.readOnly=!0,Buffer.isBuffer(data))return data;let buf;return data instanceof ArrayBuffer?buf=new FastBuffer(data):ArrayBuffer.isView(data)?buf=new FastBuffer(data.buffer,data.byteOffset,data.byteLength):(buf=Buffer.from(data),toBuffer.readOnly=!1),buf}if(module.exports={concat,mask:_mask,toArrayBuffer,toBuffer,unmask:_unmask},!process.env.WS_NO_BUFFER_UTIL)try{let bufferUtil=__require(`bufferutil`);module.exports.mask=function(source,mask,output,offset,length){length<48?_mask(source,mask,output,offset,length):bufferUtil.mask(source,mask,output,offset,length)},module.exports.unmask=function(buffer,mask){buffer.length<32?_unmask(buffer,mask):bufferUtil.unmask(buffer,mask)}}catch{}})),require_limiter=__commonJSMin(((exports,module)=>{let kDone=Symbol(`kDone`),kRun=Symbol(`kRun`);module.exports=class{constructor(concurrency){this[kDone]=()=>{this.pending--,this[kRun]()},this.concurrency=concurrency||1/0,this.jobs=[],this.pending=0}add(job){this.jobs.push(job),this[kRun]()}[kRun](){if(this.pending!==this.concurrency&&this.jobs.length){let job=this.jobs.shift();this.pending++,job(this[kDone])}}}})),require_permessage_deflate=__commonJSMin(((exports,module)=>{let zlib$1=__require(`zlib`),bufferUtil=require_buffer_util(),Limiter=require_limiter(),{kStatusCode}=require_constants(),FastBuffer=Buffer[Symbol.species],TRAILER=Buffer.from([0,0,255,255]),kPerMessageDeflate=Symbol(`permessage-deflate`),kTotalLength=Symbol(`total-length`),kCallback=Symbol(`callback`),kBuffers=Symbol(`buffers`),kError=Symbol(`error`),zlibLimiter;module.exports=class{constructor(options,isServer,maxPayload){this._maxPayload=maxPayload|0,this._options=options||{},this._threshold=this._options.threshold===void 0?1024:this._options.threshold,this._isServer=!!isServer,this._deflate=null,this._inflate=null,this.params=null,zlibLimiter||=new Limiter(this._options.concurrencyLimit===void 0?10:this._options.concurrencyLimit)}static get extensionName(){return`permessage-deflate`}offer(){let params={};return this._options.serverNoContextTakeover&&(params.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(params.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(params.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?params.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits??(params.client_max_window_bits=!0),params}accept(configurations){return configurations=this.normalizeParams(configurations),this.params=this._isServer?this.acceptAsServer(configurations):this.acceptAsClient(configurations),this.params}cleanup(){if(this._inflate&&=(this._inflate.close(),null),this._deflate){let callback=this._deflate[kCallback];this._deflate.close(),this._deflate=null,callback&&callback(Error(`The deflate stream was closed while data was being processed`))}}acceptAsServer(offers){let opts=this._options,accepted=offers.find(params=>!(opts.serverNoContextTakeover===!1&¶ms.server_no_context_takeover||params.server_max_window_bits&&(opts.serverMaxWindowBits===!1||typeof opts.serverMaxWindowBits==`number`&&opts.serverMaxWindowBits>params.server_max_window_bits)||typeof opts.clientMaxWindowBits==`number`&&!params.client_max_window_bits));if(!accepted)throw Error(`None of the extension offers can be accepted`);return opts.serverNoContextTakeover&&(accepted.server_no_context_takeover=!0),opts.clientNoContextTakeover&&(accepted.client_no_context_takeover=!0),typeof opts.serverMaxWindowBits==`number`&&(accepted.server_max_window_bits=opts.serverMaxWindowBits),typeof opts.clientMaxWindowBits==`number`?accepted.client_max_window_bits=opts.clientMaxWindowBits:(accepted.client_max_window_bits===!0||opts.clientMaxWindowBits===!1)&&delete accepted.client_max_window_bits,accepted}acceptAsClient(response){let params=response[0];if(this._options.clientNoContextTakeover===!1&¶ms.client_no_context_takeover)throw Error(`Unexpected parameter "client_no_context_takeover"`);if(!params.client_max_window_bits)typeof this._options.clientMaxWindowBits==`number`&&(params.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==`number`&¶ms.client_max_window_bits>this._options.clientMaxWindowBits)throw Error(`Unexpected or invalid parameter "client_max_window_bits"`);return params}normalizeParams(configurations){return configurations.forEach(params=>{Object.keys(params).forEach(key=>{let value=params[key];if(value.length>1)throw Error(`Parameter "${key}" must have only a single value`);if(value=value[0],key===`client_max_window_bits`){if(value!==!0){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else if(key===`server_max_window_bits`){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(key===`client_no_context_takeover`||key===`server_no_context_takeover`){if(value!==!0)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else throw Error(`Unknown parameter "${key}"`);params[key]=value})}),configurations}decompress(data,fin,callback){zlibLimiter.add(done=>{this._decompress(data,fin,(err,result)=>{done(),callback(err,result)})})}compress(data,fin,callback){zlibLimiter.add(done=>{this._compress(data,fin,(err,result)=>{done(),callback(err,result)})})}_decompress(data,fin,callback){let endpoint=this._isServer?`client`:`server`;if(!this._inflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$1.Z_DEFAULT_WINDOWBITS;this._inflate=zlib$1.createInflateRaw({...this._options.zlibInflateOptions,windowBits}),this._inflate[kPerMessageDeflate]=this,this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],this._inflate.on(`error`,inflateOnError),this._inflate.on(`data`,inflateOnData)}this._inflate[kCallback]=callback,this._inflate.write(data),fin&&this._inflate.write(TRAILER),this._inflate.flush(()=>{let err=this._inflate[kError];if(err){this._inflate.close(),this._inflate=null,callback(err);return}let data$1=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._inflate.reset()),callback(null,data$1)})}_compress(data,fin,callback){let endpoint=this._isServer?`server`:`client`;if(!this._deflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$1.Z_DEFAULT_WINDOWBITS;this._deflate=zlib$1.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits}),this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],this._deflate.on(`data`,deflateOnData)}this._deflate[kCallback]=callback,this._deflate.write(data),this._deflate.flush(zlib$1.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let data$1=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);fin&&(data$1=new FastBuffer(data$1.buffer,data$1.byteOffset,data$1.length-4)),this._deflate[kCallback]=null,this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._deflate.reset(),callback(null,data$1)})}};function deflateOnData(chunk){this[kBuffers].push(chunk),this[kTotalLength]+=chunk.length}function inflateOnData(chunk){if(this[kTotalLength]+=chunk.length,this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload){this[kBuffers].push(chunk);return}this[kError]=RangeError(`Max payload size exceeded`),this[kError].code=`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`,this[kError][kStatusCode]=1009,this.removeListener(`data`,inflateOnData),this.reset()}function inflateOnError(err){if(this[kPerMessageDeflate]._inflate=null,this[kError]){this[kCallback](this[kError]);return}err[kStatusCode]=1007,this[kCallback](err)}})),require_validation=__commonJSMin(((exports,module)=>{let{isUtf8}=__require(`buffer`),{hasBlob}=require_constants(),tokenChars=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function isValidStatusCode(code){return code>=1e3&&code<=1014&&code!==1004&&code!==1005&&code!==1006||code>=3e3&&code<=4999}function _isValidUTF8(buf){let len=buf.length,i=0;for(;i<len;)if(!(buf[i]&128))i++;else if((buf[i]&224)==192){if(i+1===len||(buf[i+1]&192)!=128||(buf[i]&254)==192)return!1;i+=2}else if((buf[i]&240)==224){if(i+2>=len||(buf[i+1]&192)!=128||(buf[i+2]&192)!=128||buf[i]===224&&(buf[i+1]&224)==128||buf[i]===237&&(buf[i+1]&224)==160)return!1;i+=3}else if((buf[i]&248)==240){if(i+3>=len||(buf[i+1]&192)!=128||(buf[i+2]&192)!=128||(buf[i+3]&192)!=128||buf[i]===240&&(buf[i+1]&240)==128||buf[i]===244&&buf[i+1]>143||buf[i]>244)return!1;i+=4}else return!1;return!0}function isBlob(value){return hasBlob&&typeof value==`object`&&typeof value.arrayBuffer==`function`&&typeof value.type==`string`&&typeof value.stream==`function`&&(value[Symbol.toStringTag]===`Blob`||value[Symbol.toStringTag]===`File`)}if(module.exports={isBlob,isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars},isUtf8)module.exports.isValidUTF8=function(buf){return buf.length<24?_isValidUTF8(buf):isUtf8(buf)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let isValidUTF8=__require(`utf-8-validate`);module.exports.isValidUTF8=function(buf){return buf.length<32?_isValidUTF8(buf):isValidUTF8(buf)}}catch{}})),require_receiver=__commonJSMin(((exports,module)=>{let{Writable}=__require(`stream`),PerMessageDeflate=require_permessage_deflate(),{BINARY_TYPES,EMPTY_BUFFER,kStatusCode,kWebSocket}=require_constants(),{concat,toArrayBuffer,unmask}=require_buffer_util(),{isValidStatusCode,isValidUTF8}=require_validation(),FastBuffer=Buffer[Symbol.species],GET_INFO=0,GET_PAYLOAD_LENGTH_16=1,GET_PAYLOAD_LENGTH_64=2,GET_MASK=3,GET_DATA=4,INFLATING=5,DEFER_EVENT=6;module.exports=class extends Writable{constructor(options={}){super(),this._allowSynchronousEvents=options.allowSynchronousEvents===void 0?!0:options.allowSynchronousEvents,this._binaryType=options.binaryType||BINARY_TYPES[0],this._extensions=options.extensions||{},this._isServer=!!options.isServer,this._maxPayload=options.maxPayload|0,this._skipUTF8Validation=!!options.skipUTF8Validation,this[kWebSocket]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(chunk,encoding,cb){if(this._opcode===8&&this._state==0)return cb();this._bufferedBytes+=chunk.length,this._buffers.push(chunk),this.startLoop(cb)}consume(n){if(this._bufferedBytes-=n,n===this._buffers[0].length)return this._buffers.shift();if(n<this._buffers[0].length){let buf=this._buffers[0];return this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n),new FastBuffer(buf.buffer,buf.byteOffset,n)}let dst=Buffer.allocUnsafe(n);do{let buf=this._buffers[0],offset=dst.length-n;n>=buf.length?dst.set(this._buffers.shift(),offset):(dst.set(new Uint8Array(buf.buffer,buf.byteOffset,n),offset),this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n)),n-=buf.length}while(n>0);return dst}startLoop(cb){this._loop=!0;do switch(this._state){case 0:this.getInfo(cb);break;case 1:this.getPayloadLength16(cb);break;case 2:this.getPayloadLength64(cb);break;case 3:this.getMask();break;case 4:this.getData(cb);break;case 5:case 6:this._loop=!1;return}while(this._loop);this._errored||cb()}getInfo(cb){if(this._bufferedBytes<2){this._loop=!1;return}let buf=this.consume(2);if(buf[0]&48){cb(this.createError(RangeError,`RSV2 and RSV3 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_2_3`));return}let compressed=(buf[0]&64)==64;if(compressed&&!this._extensions[PerMessageDeflate.extensionName]){cb(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(this._fin=(buf[0]&128)==128,this._opcode=buf[0]&15,this._payloadLength=buf[1]&127,this._opcode===0){if(compressed){cb(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(!this._fragmented){cb(this.createError(RangeError,`invalid opcode 0`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){cb(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}this._compressed=compressed}else if(this._opcode>7&&this._opcode<11){if(!this._fin){cb(this.createError(RangeError,`FIN must be set`,!0,1002,`WS_ERR_EXPECTED_FIN`));return}if(compressed){cb(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){cb(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,`WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH`));return}}else{cb(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(buf[1]&128)==128,this._isServer){if(!this._masked){cb(this.createError(RangeError,`MASK must be set`,!0,1002,`WS_ERR_EXPECTED_MASK`));return}}else if(this._masked){cb(this.createError(RangeError,`MASK must be clear`,!0,1002,`WS_ERR_UNEXPECTED_MASK`));return}this._payloadLength===126?this._state=1:this._payloadLength===127?this._state=2:this.haveLength(cb)}getPayloadLength16(cb){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(cb)}getPayloadLength64(cb){if(this._bufferedBytes<8){this._loop=!1;return}let buf=this.consume(8),num=buf.readUInt32BE(0);if(num>2**21-1){cb(this.createError(RangeError,`Unsupported WebSocket frame: payload length > 2^53 - 1`,!1,1009,`WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH`));return}this._payloadLength=num*2**32+buf.readUInt32BE(4),this.haveLength(cb)}haveLength(cb){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){cb(this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`));return}this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(cb){let data=EMPTY_BUFFER;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}data=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&unmask(data,this._mask)}if(this._opcode>7){this.controlMessage(data,cb);return}if(this._compressed){this._state=5,this.decompress(data,cb);return}data.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(data)),this.dataMessage(cb)}decompress(data,cb){this._extensions[PerMessageDeflate.extensionName].decompress(data,this._fin,(err,buf)=>{if(err)return cb(err);if(buf.length){if(this._messageLength+=buf.length,this._messageLength>this._maxPayload&&this._maxPayload>0){cb(this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`));return}this._fragments.push(buf)}this.dataMessage(cb),this._state===0&&this.startLoop(cb)})}dataMessage(cb){if(!this._fin){this._state=0;return}let messageLength=this._messageLength,fragments=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let data;data=this._binaryType===`nodebuffer`?concat(fragments,messageLength):this._binaryType===`arraybuffer`?toArrayBuffer(concat(fragments,messageLength)):this._binaryType===`blob`?new Blob(fragments):fragments,this._allowSynchronousEvents?(this.emit(`message`,data,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,data,!0),this._state=0,this.startLoop(cb)}))}else{let buf=concat(fragments,messageLength);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){cb(this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`));return}this._state===5||this._allowSynchronousEvents?(this.emit(`message`,buf,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,buf,!1),this._state=0,this.startLoop(cb)}))}}controlMessage(data,cb){if(this._opcode===8){if(data.length===0)this._loop=!1,this.emit(`conclude`,1005,EMPTY_BUFFER),this.end();else{let code=data.readUInt16BE(0);if(!isValidStatusCode(code)){cb(this.createError(RangeError,`invalid status code ${code}`,!0,1002,`WS_ERR_INVALID_CLOSE_CODE`));return}let buf=new FastBuffer(data.buffer,data.byteOffset+2,data.length-2);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){cb(this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`));return}this._loop=!1,this.emit(`conclude`,code,buf),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?`ping`:`pong`,data),this._state=0):(this._state=6,setImmediate(()=>{this.emit(this._opcode===9?`ping`:`pong`,data),this._state=0,this.startLoop(cb)}))}createError(ErrorCtor,message,prefix,statusCode,errorCode){this._loop=!1,this._errored=!0;let err=new ErrorCtor(prefix?`Invalid WebSocket frame: ${message}`:message);return Error.captureStackTrace(err,this.createError),err.code=errorCode,err[kStatusCode]=statusCode,err}}})),require_sender=__commonJSMin(((exports,module)=>{let{Duplex:Duplex$3}=__require(`stream`),{randomFillSync}=__require(`crypto`),PerMessageDeflate=require_permessage_deflate(),{EMPTY_BUFFER,kWebSocket,NOOP}=require_constants(),{isBlob,isValidStatusCode}=require_validation(),{mask:applyMask,toBuffer}=require_buffer_util(),kByteLength=Symbol(`kByteLength`),maskBuffer=Buffer.alloc(4),RANDOM_POOL_SIZE=8*1024,randomPool,randomPoolPointer=RANDOM_POOL_SIZE,DEFAULT=0,DEFLATING=1,GET_BLOB_DATA=2;module.exports=class Sender{constructor(socket,extensions,generateMask){this._extensions=extensions||{},generateMask&&(this._generateMask=generateMask,this._maskBuffer=Buffer.alloc(4)),this._socket=socket,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=NOOP,this[kWebSocket]=void 0}static frame(data,options){let mask,merge=!1,offset=2,skipMasking=!1;options.mask&&(mask=options.maskBuffer||maskBuffer,options.generateMask?options.generateMask(mask):(randomPoolPointer===RANDOM_POOL_SIZE&&(randomPool===void 0&&(randomPool=Buffer.alloc(RANDOM_POOL_SIZE)),randomFillSync(randomPool,0,RANDOM_POOL_SIZE),randomPoolPointer=0),mask[0]=randomPool[randomPoolPointer++],mask[1]=randomPool[randomPoolPointer++],mask[2]=randomPool[randomPoolPointer++],mask[3]=randomPool[randomPoolPointer++]),skipMasking=(mask[0]|mask[1]|mask[2]|mask[3])===0,offset=6);let dataLength;typeof data==`string`?(!options.mask||skipMasking)&&options[kByteLength]!==void 0?dataLength=options[kByteLength]:(data=Buffer.from(data),dataLength=data.length):(dataLength=data.length,merge=options.mask&&options.readOnly&&!skipMasking);let payloadLength=dataLength;dataLength>=65536?(offset+=8,payloadLength=127):dataLength>125&&(offset+=2,payloadLength=126);let target=Buffer.allocUnsafe(merge?dataLength+offset:offset);return target[0]=options.fin?options.opcode|128:options.opcode,options.rsv1&&(target[0]|=64),target[1]=payloadLength,payloadLength===126?target.writeUInt16BE(dataLength,2):payloadLength===127&&(target[2]=target[3]=0,target.writeUIntBE(dataLength,4,6)),!options.mask||(target[1]|=128,target[offset-4]=mask[0],target[offset-3]=mask[1],target[offset-2]=mask[2],target[offset-1]=mask[3],skipMasking)?[target,data]:merge?(applyMask(data,mask,target,offset,dataLength),[target]):(applyMask(data,mask,data,0,dataLength),[target,data])}close(code,data,mask,cb){let buf;if(code===void 0)buf=EMPTY_BUFFER;else if(typeof code!=`number`||!isValidStatusCode(code))throw TypeError(`First argument must be a valid error code number`);else if(data===void 0||!data.length)buf=Buffer.allocUnsafe(2),buf.writeUInt16BE(code,0);else{let length=Buffer.byteLength(data);if(length>123)throw RangeError(`The message must not be greater than 123 bytes`);buf=Buffer.allocUnsafe(2+length),buf.writeUInt16BE(code,0),typeof data==`string`?buf.write(data,2):buf.set(data,2)}let options={[kByteLength]:buf.length,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state===0?this.sendFrame(Sender.frame(buf,options),cb):this.enqueue([this.dispatch,buf,!1,options,cb])}ping(data,mask,cb){let byteLength,readOnly;if(typeof data==`string`?(byteLength=Buffer.byteLength(data),readOnly=!1):isBlob(data)?(byteLength=data.size,readOnly=!1):(data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly),byteLength>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options={[kByteLength]:byteLength,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:9,readOnly,rsv1:!1};isBlob(data)?this._state===0?this.getBlobData(data,!1,options,cb):this.enqueue([this.getBlobData,data,!1,options,cb]):this._state===0?this.sendFrame(Sender.frame(data,options),cb):this.enqueue([this.dispatch,data,!1,options,cb])}pong(data,mask,cb){let byteLength,readOnly;if(typeof data==`string`?(byteLength=Buffer.byteLength(data),readOnly=!1):isBlob(data)?(byteLength=data.size,readOnly=!1):(data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly),byteLength>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options={[kByteLength]:byteLength,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:10,readOnly,rsv1:!1};isBlob(data)?this._state===0?this.getBlobData(data,!1,options,cb):this.enqueue([this.getBlobData,data,!1,options,cb]):this._state===0?this.sendFrame(Sender.frame(data,options),cb):this.enqueue([this.dispatch,data,!1,options,cb])}send(data,options,cb){let perMessageDeflate=this._extensions[PerMessageDeflate.extensionName],opcode=options.binary?2:1,rsv1=options.compress,byteLength,readOnly;typeof data==`string`?(byteLength=Buffer.byteLength(data),readOnly=!1):isBlob(data)?(byteLength=data.size,readOnly=!1):(data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly),this._firstFragment?(this._firstFragment=!1,rsv1&&perMessageDeflate&&perMessageDeflate.params[perMessageDeflate._isServer?`server_no_context_takeover`:`client_no_context_takeover`]&&(rsv1=byteLength>=perMessageDeflate._threshold),this._compress=rsv1):(rsv1=!1,opcode=0),options.fin&&(this._firstFragment=!0);let opts={[kByteLength]:byteLength,fin:options.fin,generateMask:this._generateMask,mask:options.mask,maskBuffer:this._maskBuffer,opcode,readOnly,rsv1};isBlob(data)?this._state===0?this.getBlobData(data,this._compress,opts,cb):this.enqueue([this.getBlobData,data,this._compress,opts,cb]):this._state===0?this.dispatch(data,this._compress,opts,cb):this.enqueue([this.dispatch,data,this._compress,opts,cb])}getBlobData(blob,compress,options,cb){this._bufferedBytes+=options[kByteLength],this._state=2,blob.arrayBuffer().then(arrayBuffer=>{if(this._socket.destroyed){let err=Error(`The socket was closed while the blob was being read`);process.nextTick(callCallbacks,this,err,cb);return}this._bufferedBytes-=options[kByteLength];let data=toBuffer(arrayBuffer);compress?this.dispatch(data,compress,options,cb):(this._state=0,this.sendFrame(Sender.frame(data,options),cb),this.dequeue())}).catch(err=>{process.nextTick(onError,this,err,cb)})}dispatch(data,compress,options,cb){if(!compress){this.sendFrame(Sender.frame(data,options),cb);return}let perMessageDeflate=this._extensions[PerMessageDeflate.extensionName];this._bufferedBytes+=options[kByteLength],this._state=1,perMessageDeflate.compress(data,options.fin,(_,buf)=>{if(this._socket.destroyed){callCallbacks(this,Error(`The socket was closed while data was being compressed`),cb);return}this._bufferedBytes-=options[kByteLength],this._state=0,options.readOnly=!1,this.sendFrame(Sender.frame(buf,options),cb),this.dequeue()})}dequeue(){for(;this._state===0&&this._queue.length;){let params=this._queue.shift();this._bufferedBytes-=params[3][kByteLength],Reflect.apply(params[0],this,params.slice(1))}}enqueue(params){this._bufferedBytes+=params[3][kByteLength],this._queue.push(params)}sendFrame(list,cb){list.length===2?(this._socket.cork(),this._socket.write(list[0]),this._socket.write(list[1],cb),this._socket.uncork()):this._socket.write(list[0],cb)}};function callCallbacks(sender,err,cb){typeof cb==`function`&&cb(err);for(let i=0;i<sender._queue.length;i++){let params=sender._queue[i],callback=params[params.length-1];typeof callback==`function`&&callback(err)}}function onError(sender,err,cb){callCallbacks(sender,err,cb),sender.onerror(err)}})),require_event_target=__commonJSMin(((exports,module)=>{let{kForOnEventAttribute,kListener}=require_constants(),kCode=Symbol(`kCode`),kData=Symbol(`kData`),kError=Symbol(`kError`),kMessage=Symbol(`kMessage`),kReason=Symbol(`kReason`),kTarget=Symbol(`kTarget`),kType=Symbol(`kType`),kWasClean=Symbol(`kWasClean`);var Event=class{constructor(type){this[kTarget]=null,this[kType]=type}get target(){return this[kTarget]}get type(){return this[kType]}};Object.defineProperty(Event.prototype,`target`,{enumerable:!0}),Object.defineProperty(Event.prototype,`type`,{enumerable:!0});var CloseEvent=class extends Event{constructor(type,options={}){super(type),this[kCode]=options.code===void 0?0:options.code,this[kReason]=options.reason===void 0?``:options.reason,this[kWasClean]=options.wasClean===void 0?!1:options.wasClean}get code(){return this[kCode]}get reason(){return this[kReason]}get wasClean(){return this[kWasClean]}};Object.defineProperty(CloseEvent.prototype,`code`,{enumerable:!0}),Object.defineProperty(CloseEvent.prototype,`reason`,{enumerable:!0}),Object.defineProperty(CloseEvent.prototype,`wasClean`,{enumerable:!0});var ErrorEvent=class extends Event{constructor(type,options={}){super(type),this[kError]=options.error===void 0?null:options.error,this[kMessage]=options.message===void 0?``:options.message}get error(){return this[kError]}get message(){return this[kMessage]}};Object.defineProperty(ErrorEvent.prototype,`error`,{enumerable:!0}),Object.defineProperty(ErrorEvent.prototype,`message`,{enumerable:!0});var MessageEvent=class extends Event{constructor(type,options={}){super(type),this[kData]=options.data===void 0?null:options.data}get data(){return this[kData]}};Object.defineProperty(MessageEvent.prototype,`data`,{enumerable:!0}),module.exports={CloseEvent,ErrorEvent,Event,EventTarget:{addEventListener(type,handler,options={}){for(let listener of this.listeners(type))if(!options[kForOnEventAttribute]&&listener[kListener]===handler&&!listener[kForOnEventAttribute])return;let wrapper;if(type===`message`)wrapper=function(data,isBinary){let event=new MessageEvent(`message`,{data:isBinary?data:data.toString()});event[kTarget]=this,callListener(handler,this,event)};else if(type===`close`)wrapper=function(code,message){let event=new CloseEvent(`close`,{code,reason:message.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});event[kTarget]=this,callListener(handler,this,event)};else if(type===`error`)wrapper=function(error){let event=new ErrorEvent(`error`,{error,message:error.message});event[kTarget]=this,callListener(handler,this,event)};else if(type===`open`)wrapper=function(){let event=new Event(`open`);event[kTarget]=this,callListener(handler,this,event)};else return;wrapper[kForOnEventAttribute]=!!options[kForOnEventAttribute],wrapper[kListener]=handler,options.once?this.once(type,wrapper):this.on(type,wrapper)},removeEventListener(type,handler){for(let listener of this.listeners(type))if(listener[kListener]===handler&&!listener[kForOnEventAttribute]){this.removeListener(type,listener);break}}},MessageEvent};function callListener(listener,thisArg,event){typeof listener==`object`&&listener.handleEvent?listener.handleEvent.call(listener,event):listener.call(thisArg,event)}})),require_extension=__commonJSMin(((exports,module)=>{let{tokenChars}=require_validation();function push(dest,name,elem){dest[name]===void 0?dest[name]=[elem]:dest[name].push(elem)}function parse(header){let offers=Object.create(null),params=Object.create(null),mustUnescape=!1,isEscaping=!1,inQuotes=!1,extensionName,paramName,start=-1,code=-1,end=-1,i=0;for(;i<header.length;i++)if(code=header.charCodeAt(i),extensionName===void 0)if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(i!==0&&(code===32||code===9))end===-1&&start!==-1&&(end=i);else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i);let name=header.slice(start,end);code===44?(push(offers,name,params),params=Object.create(null)):extensionName=name,start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`);else if(paramName===void 0)if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(code===32||code===9)end===-1&&start!==-1&&(end=i);else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i),push(params,header.slice(start,end),!0),code===44&&(push(offers,extensionName,params),params=Object.create(null),extensionName=void 0),start=end=-1}else if(code===61&&start!==-1&&end===-1)paramName=header.slice(start,i),start=end=-1;else throw SyntaxError(`Unexpected character at index ${i}`);else if(isEscaping){if(tokenChars[code]!==1)throw SyntaxError(`Unexpected character at index ${i}`);start===-1?start=i:mustUnescape||=!0,isEscaping=!1}else if(inQuotes)if(tokenChars[code]===1)start===-1&&(start=i);else if(code===34&&start!==-1)inQuotes=!1,end=i;else if(code===92)isEscaping=!0;else throw SyntaxError(`Unexpected character at index ${i}`);else if(code===34&&header.charCodeAt(i-1)===61)inQuotes=!0;else if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(start!==-1&&(code===32||code===9))end===-1&&(end=i);else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i);let value=header.slice(start,end);mustUnescape&&=(value=value.replace(/\\/g,``),!1),push(params,paramName,value),code===44&&(push(offers,extensionName,params),params=Object.create(null),extensionName=void 0),paramName=void 0,start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`);if(start===-1||inQuotes||code===32||code===9)throw SyntaxError(`Unexpected end of input`);end===-1&&(end=i);let token=header.slice(start,end);return extensionName===void 0?push(offers,token,params):(paramName===void 0?push(params,token,!0):mustUnescape?push(params,paramName,token.replace(/\\/g,``)):push(params,paramName,token),push(offers,extensionName,params)),offers}function format(extensions){return Object.keys(extensions).map(extension=>{let configurations=extensions[extension];return Array.isArray(configurations)||(configurations=[configurations]),configurations.map(params=>[extension].concat(Object.keys(params).map(k=>{let values=params[k];return Array.isArray(values)||(values=[values]),values.map(v=>v===!0?k:`${k}=${v}`).join(`; `)})).join(`; `)).join(`, `)}).join(`, `)}module.exports={format,parse}})),require_websocket=__commonJSMin(((exports,module)=>{let EventEmitter$1=__require(`events`),https=__require(`https`),http$1=__require(`http`),net=__require(`net`),tls=__require(`tls`),{randomBytes,createHash:createHash$1}=__require(`crypto`),{Duplex:Duplex$2,Readable:Readable$1}=__require(`stream`),{URL:URL$1}=__require(`url`),PerMessageDeflate=require_permessage_deflate(),Receiver=require_receiver(),Sender=require_sender(),{isBlob}=require_validation(),{BINARY_TYPES,EMPTY_BUFFER,GUID,kForOnEventAttribute,kListener,kStatusCode,kWebSocket,NOOP}=require_constants(),{EventTarget:{addEventListener,removeEventListener}}=require_event_target(),{format,parse}=require_extension(),{toBuffer}=require_buffer_util(),closeTimeout=30*1e3,kAborted=Symbol(`kAborted`),protocolVersions=[8,13],readyStates=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],subprotocolRegex=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;var WebSocket=class WebSocket extends EventEmitter$1{constructor(address,protocols,options){super(),this._binaryType=BINARY_TYPES[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=EMPTY_BUFFER,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol=``,this._readyState=WebSocket.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,address===null?(this._autoPong=options.autoPong,this._isServer=!0):(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,protocols===void 0?protocols=[]:Array.isArray(protocols)||(typeof protocols==`object`&&protocols?(options=protocols,protocols=[]):protocols=[protocols]),initAsClient(this,address,protocols,options))}get binaryType(){return this._binaryType}set binaryType(type){BINARY_TYPES.includes(type)&&(this._binaryType=type,this._receiver&&(this._receiver._binaryType=type))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(socket,head,options){let receiver=new Receiver({allowSynchronousEvents:options.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:options.maxPayload,skipUTF8Validation:options.skipUTF8Validation}),sender=new Sender(socket,this._extensions,options.generateMask);this._receiver=receiver,this._sender=sender,this._socket=socket,receiver[kWebSocket]=this,sender[kWebSocket]=this,socket[kWebSocket]=this,receiver.on(`conclude`,receiverOnConclude),receiver.on(`drain`,receiverOnDrain),receiver.on(`error`,receiverOnError),receiver.on(`message`,receiverOnMessage),receiver.on(`ping`,receiverOnPing),receiver.on(`pong`,receiverOnPong),sender.onerror=senderOnError,socket.setTimeout&&socket.setTimeout(0),socket.setNoDelay&&socket.setNoDelay(),head.length>0&&socket.unshift(head),socket.on(`close`,socketOnClose),socket.on(`data`,socketOnData),socket.on(`end`,socketOnEnd),socket.on(`error`,socketOnError),this._readyState=WebSocket.OPEN,this.emit(`open`)}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage);return}this._extensions[PerMessageDeflate.extensionName]&&this._extensions[PerMessageDeflate.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=WebSocket.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage)}close(code,data){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){abortHandshake(this,this._req,`WebSocket was closed before the connection was established`);return}if(this.readyState===WebSocket.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=WebSocket.CLOSING,this._sender.close(code,data,!this._isServer,err=>{err||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),setCloseTimer(this)}}pause(){this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED||(this._paused=!0,this._socket.pause())}ping(data,mask,cb){if(this.readyState===WebSocket.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data==`function`?(cb=data,data=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data==`number`&&(data=data.toString()),this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.ping(data||EMPTY_BUFFER,mask,cb)}pong(data,mask,cb){if(this.readyState===WebSocket.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data==`function`?(cb=data,data=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data==`number`&&(data=data.toString()),this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.pong(data||EMPTY_BUFFER,mask,cb)}resume(){this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(data,options,cb){if(this.readyState===WebSocket.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof options==`function`&&(cb=options,options={}),typeof data==`number`&&(data=data.toString()),this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}let opts={binary:typeof data!=`string`,mask:!this._isServer,compress:!0,fin:!0,...options};this._extensions[PerMessageDeflate.extensionName]||(opts.compress=!1),this._sender.send(data||EMPTY_BUFFER,opts,cb)}terminate(){if(this.readyState!==WebSocket.CLOSED){if(this.readyState===WebSocket.CONNECTING){abortHandshake(this,this._req,`WebSocket was closed before the connection was established`);return}this._socket&&(this._readyState=WebSocket.CLOSING,this._socket.destroy())}}};Object.defineProperty(WebSocket,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket.prototype,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket.prototype,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket.prototype,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),Object.defineProperty(WebSocket.prototype,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),[`binaryType`,`bufferedAmount`,`extensions`,`isPaused`,`protocol`,`readyState`,`url`].forEach(property=>{Object.defineProperty(WebSocket.prototype,property,{enumerable:!0})}),[`open`,`error`,`close`,`message`].forEach(method=>{Object.defineProperty(WebSocket.prototype,`on${method}`,{enumerable:!0,get(){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute])return listener[kListener];return null},set(handler){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute]){this.removeListener(method,listener);break}typeof handler==`function`&&this.addEventListener(method,handler,{[kForOnEventAttribute]:!0})}})}),WebSocket.prototype.addEventListener=addEventListener,WebSocket.prototype.removeEventListener=removeEventListener,module.exports=WebSocket;function initAsClient(websocket,address,protocols,options){let opts={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:protocolVersions[1],maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...options,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:`GET`,host:void 0,path:void 0,port:void 0};if(websocket._autoPong=opts.autoPong,!protocolVersions.includes(opts.protocolVersion))throw RangeError(`Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(`, `)})`);let parsedUrl;if(address instanceof URL$1)parsedUrl=address;else try{parsedUrl=new URL$1(address)}catch{throw SyntaxError(`Invalid URL: ${address}`)}parsedUrl.protocol===`http:`?parsedUrl.protocol=`ws:`:parsedUrl.protocol===`https:`&&(parsedUrl.protocol=`wss:`),websocket._url=parsedUrl.href;let isSecure=parsedUrl.protocol===`wss:`,isIpcUrl=parsedUrl.protocol===`ws+unix:`,invalidUrlMessage;if(parsedUrl.protocol!==`ws:`&&!isSecure&&!isIpcUrl?invalidUrlMessage=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:isIpcUrl&&!parsedUrl.pathname?invalidUrlMessage=`The URL's pathname is empty`:parsedUrl.hash&&(invalidUrlMessage=`The URL contains a fragment identifier`),invalidUrlMessage){let err=SyntaxError(invalidUrlMessage);if(websocket._redirects===0)throw err;emitErrorAndClose(websocket,err);return}let defaultPort=isSecure?443:80,key=randomBytes(16).toString(`base64`),request=isSecure?https.request:http$1.request,protocolSet=new Set,perMessageDeflate;if(opts.createConnection=opts.createConnection||(isSecure?tlsConnect:netConnect),opts.defaultPort=opts.defaultPort||defaultPort,opts.port=parsedUrl.port||defaultPort,opts.host=parsedUrl.hostname.startsWith(`[`)?parsedUrl.hostname.slice(1,-1):parsedUrl.hostname,opts.headers={...opts.headers,"Sec-WebSocket-Version":opts.protocolVersion,"Sec-WebSocket-Key":key,Connection:`Upgrade`,Upgrade:`websocket`},opts.path=parsedUrl.pathname+parsedUrl.search,opts.timeout=opts.handshakeTimeout,opts.perMessageDeflate&&(perMessageDeflate=new PerMessageDeflate(opts.perMessageDeflate===!0?{}:opts.perMessageDeflate,!1,opts.maxPayload),opts.headers[`Sec-WebSocket-Extensions`]=format({[PerMessageDeflate.extensionName]:perMessageDeflate.offer()})),protocols.length){for(let protocol of protocols){if(typeof protocol!=`string`||!subprotocolRegex.test(protocol)||protocolSet.has(protocol))throw SyntaxError(`An invalid or duplicated subprotocol was specified`);protocolSet.add(protocol)}opts.headers[`Sec-WebSocket-Protocol`]=protocols.join(`,`)}if(opts.origin&&(opts.protocolVersion<13?opts.headers[`Sec-WebSocket-Origin`]=opts.origin:opts.headers.Origin=opts.origin),(parsedUrl.username||parsedUrl.password)&&(opts.auth=`${parsedUrl.username}:${parsedUrl.password}`),isIpcUrl){let parts=opts.path.split(`:`);opts.socketPath=parts[0],opts.path=parts[1]}let req;if(opts.followRedirects){if(websocket._redirects===0){websocket._originalIpc=isIpcUrl,websocket._originalSecure=isSecure,websocket._originalHostOrSocketPath=isIpcUrl?opts.socketPath:parsedUrl.host;let headers=options&&options.headers;if(options={...options,headers:{}},headers)for(let[key$1,value]of Object.entries(headers))options.headers[key$1.toLowerCase()]=value}else if(websocket.listenerCount(`redirect`)===0){let isSameHost=isIpcUrl?websocket._originalIpc?opts.socketPath===websocket._originalHostOrSocketPath:!1:websocket._originalIpc?!1:parsedUrl.host===websocket._originalHostOrSocketPath;(!isSameHost||websocket._originalSecure&&!isSecure)&&(delete opts.headers.authorization,delete opts.headers.cookie,isSameHost||delete opts.headers.host,opts.auth=void 0)}opts.auth&&!options.headers.authorization&&(options.headers.authorization=`Basic `+Buffer.from(opts.auth).toString(`base64`)),req=websocket._req=request(opts),websocket._redirects&&websocket.emit(`redirect`,websocket.url,req)}else req=websocket._req=request(opts);opts.timeout&&req.on(`timeout`,()=>{abortHandshake(websocket,req,`Opening handshake has timed out`)}),req.on(`error`,err=>{req===null||req[kAborted]||(req=websocket._req=null,emitErrorAndClose(websocket,err))}),req.on(`response`,res=>{let location=res.headers.location,statusCode=res.statusCode;if(location&&opts.followRedirects&&statusCode>=300&&statusCode<400){if(++websocket._redirects>opts.maxRedirects){abortHandshake(websocket,req,`Maximum redirects exceeded`);return}req.abort();let addr;try{addr=new URL$1(location,address)}catch{emitErrorAndClose(websocket,SyntaxError(`Invalid URL: ${location}`));return}initAsClient(websocket,addr,protocols,options)}else websocket.emit(`unexpected-response`,req,res)||abortHandshake(websocket,req,`Unexpected server response: ${res.statusCode}`)}),req.on(`upgrade`,(res,socket,head)=>{if(websocket.emit(`upgrade`,res),websocket.readyState!==WebSocket.CONNECTING)return;req=websocket._req=null;let upgrade=res.headers.upgrade;if(upgrade===void 0||upgrade.toLowerCase()!==`websocket`){abortHandshake(websocket,socket,`Invalid Upgrade header`);return}let digest=createHash$1(`sha1`).update(key+GUID).digest(`base64`);if(res.headers[`sec-websocket-accept`]!==digest){abortHandshake(websocket,socket,`Invalid Sec-WebSocket-Accept header`);return}let serverProt=res.headers[`sec-websocket-protocol`],protError;if(serverProt===void 0?protocolSet.size&&(protError=`Server sent no subprotocol`):protocolSet.size?protocolSet.has(serverProt)||(protError=`Server sent an invalid subprotocol`):protError=`Server sent a subprotocol but none was requested`,protError){abortHandshake(websocket,socket,protError);return}serverProt&&(websocket._protocol=serverProt);let secWebSocketExtensions=res.headers[`sec-websocket-extensions`];if(secWebSocketExtensions!==void 0){if(!perMessageDeflate){abortHandshake(websocket,socket,`Server sent a Sec-WebSocket-Extensions header but no extension was requested`);return}let extensions;try{extensions=parse(secWebSocketExtensions)}catch{abortHandshake(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}let extensionNames=Object.keys(extensions);if(extensionNames.length!==1||extensionNames[0]!==PerMessageDeflate.extensionName){abortHandshake(websocket,socket,`Server indicated an extension that was not requested`);return}try{perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName])}catch{abortHandshake(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}websocket._extensions[PerMessageDeflate.extensionName]=perMessageDeflate}websocket.setSocket(socket,head,{allowSynchronousEvents:opts.allowSynchronousEvents,generateMask:opts.generateMask,maxPayload:opts.maxPayload,skipUTF8Validation:opts.skipUTF8Validation})}),opts.finishRequest?opts.finishRequest(req,websocket):req.end()}function emitErrorAndClose(websocket,err){websocket._readyState=WebSocket.CLOSING,websocket._errorEmitted=!0,websocket.emit(`error`,err),websocket.emitClose()}function netConnect(options){return options.path=options.socketPath,net.connect(options)}function tlsConnect(options){return options.path=void 0,!options.servername&&options.servername!==``&&(options.servername=net.isIP(options.host)?``:options.host),tls.connect(options)}function abortHandshake(websocket,stream,message){websocket._readyState=WebSocket.CLOSING;let err=Error(message);Error.captureStackTrace(err,abortHandshake),stream.setHeader?(stream[kAborted]=!0,stream.abort(),stream.socket&&!stream.socket.destroyed&&stream.socket.destroy(),process.nextTick(emitErrorAndClose,websocket,err)):(stream.destroy(err),stream.once(`error`,websocket.emit.bind(websocket,`error`)),stream.once(`close`,websocket.emitClose.bind(websocket)))}function sendAfterClose(websocket,data,cb){if(data){let length=isBlob(data)?data.size:toBuffer(data).length;websocket._socket?websocket._sender._bufferedBytes+=length:websocket._bufferedAmount+=length}if(cb){let err=Error(`WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`);process.nextTick(cb,err)}}function receiverOnConclude(code,reason){let websocket=this[kWebSocket];websocket._closeFrameReceived=!0,websocket._closeMessage=reason,websocket._closeCode=code,websocket._socket[kWebSocket]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume,websocket._socket),code===1005?websocket.close():websocket.close(code,reason))}function receiverOnDrain(){let websocket=this[kWebSocket];websocket.isPaused||websocket._socket.resume()}function receiverOnError(err){let websocket=this[kWebSocket];websocket._socket[kWebSocket]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume,websocket._socket),websocket.close(err[kStatusCode])),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err))}function receiverOnFinish(){this[kWebSocket].emitClose()}function receiverOnMessage(data,isBinary){this[kWebSocket].emit(`message`,data,isBinary)}function receiverOnPing(data){let websocket=this[kWebSocket];websocket._autoPong&&websocket.pong(data,!this._isServer,NOOP),websocket.emit(`ping`,data)}function receiverOnPong(data){this[kWebSocket].emit(`pong`,data)}function resume(stream){stream.resume()}function senderOnError(err){let websocket=this[kWebSocket];websocket.readyState!==WebSocket.CLOSED&&(websocket.readyState===WebSocket.OPEN&&(websocket._readyState=WebSocket.CLOSING,setCloseTimer(websocket)),this._socket.end(),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err)))}function setCloseTimer(websocket){websocket._closeTimer=setTimeout(websocket._socket.destroy.bind(websocket._socket),3e4)}function socketOnClose(){let websocket=this[kWebSocket];this.removeListener(`close`,socketOnClose),this.removeListener(`data`,socketOnData),this.removeListener(`end`,socketOnEnd),websocket._readyState=WebSocket.CLOSING;let chunk;!this._readableState.endEmitted&&!websocket._closeFrameReceived&&!websocket._receiver._writableState.errorEmitted&&(chunk=websocket._socket.read())!==null&&websocket._receiver.write(chunk),websocket._receiver.end(),this[kWebSocket]=void 0,clearTimeout(websocket._closeTimer),websocket._receiver._writableState.finished||websocket._receiver._writableState.errorEmitted?websocket.emitClose():(websocket._receiver.on(`error`,receiverOnFinish),websocket._receiver.on(`finish`,receiverOnFinish))}function socketOnData(chunk){this[kWebSocket]._receiver.write(chunk)||this.pause()}function socketOnEnd(){let websocket=this[kWebSocket];websocket._readyState=WebSocket.CLOSING,websocket._receiver.end(),this.end()}function socketOnError(){let websocket=this[kWebSocket];this.removeListener(`error`,socketOnError),this.on(`error`,NOOP),websocket&&(websocket._readyState=WebSocket.CLOSING,this.destroy())}})),require_stream=__commonJSMin(((exports,module)=>{require_websocket();let{Duplex:Duplex$1}=__require(`stream`);function emitClose(stream){stream.emit(`close`)}function duplexOnEnd(){!this.destroyed&&this._writableState.finished&&this.destroy()}function duplexOnError(err){this.removeListener(`error`,duplexOnError),this.destroy(),this.listenerCount(`error`)===0&&this.emit(`error`,err)}function createWebSocketStream(ws,options){let terminateOnDestroy=!0,duplex=new Duplex$1({...options,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return ws.on(`message`,function(msg,isBinary){let data=!isBinary&&duplex._readableState.objectMode?msg.toString():msg;duplex.push(data)||ws.pause()}),ws.once(`error`,function(err){duplex.destroyed||(terminateOnDestroy=!1,duplex.destroy(err))}),ws.once(`close`,function(){duplex.destroyed||duplex.push(null)}),duplex._destroy=function(err,callback){if(ws.readyState===ws.CLOSED){callback(err),process.nextTick(emitClose,duplex);return}let called=!1;ws.once(`error`,function(err$1){called=!0,callback(err$1)}),ws.once(`close`,function(){called||callback(err),process.nextTick(emitClose,duplex)}),terminateOnDestroy&&ws.terminate()},duplex._final=function(callback){if(ws.readyState===ws.CONNECTING){ws.once(`open`,function(){duplex._final(callback)});return}ws._socket!==null&&(ws._socket._writableState.finished?(callback(),duplex._readableState.endEmitted&&duplex.destroy()):(ws._socket.once(`finish`,function(){callback()}),ws.close()))},duplex._read=function(){ws.isPaused&&ws.resume()},duplex._write=function(chunk,encoding,callback){if(ws.readyState===ws.CONNECTING){ws.once(`open`,function(){duplex._write(chunk,encoding,callback)});return}ws.send(chunk,callback)},duplex.on(`end`,duplexOnEnd),duplex.on(`error`,duplexOnError),duplex}module.exports=createWebSocketStream})),require_subprotocol=__commonJSMin(((exports,module)=>{let{tokenChars}=require_validation();function parse(header){let protocols=new Set,start=-1,end=-1,i=0;for(;i<header.length;i++){let code=header.charCodeAt(i);if(end===-1&&tokenChars[code]===1)start===-1&&(start=i);else if(i!==0&&(code===32||code===9))end===-1&&start!==-1&&(end=i);else if(code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);end===-1&&(end=i);let protocol$1=header.slice(start,end);if(protocols.has(protocol$1))throw SyntaxError(`The "${protocol$1}" subprotocol is duplicated`);protocols.add(protocol$1),start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`)}if(start===-1||end!==-1)throw SyntaxError(`Unexpected end of input`);let protocol=header.slice(start,i);if(protocols.has(protocol))throw SyntaxError(`The "${protocol}" subprotocol is duplicated`);return protocols.add(protocol),protocols}module.exports={parse}})),require_websocket_server=__commonJSMin(((exports,module)=>{let EventEmitter=__require(`events`),http=__require(`http`),{Duplex}=__require(`stream`),{createHash}=__require(`crypto`),extension=require_extension(),PerMessageDeflate=require_permessage_deflate(),subprotocol=require_subprotocol(),WebSocket=require_websocket(),{GUID,kWebSocket}=require_constants(),keyRegex=/^[+/0-9A-Za-z]{22}==$/,RUNNING=0,CLOSING=1,CLOSED=2;module.exports=class extends EventEmitter{constructor(options,callback){if(super(),options={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket,...options},options.port==null&&!options.server&&!options.noServer||options.port!=null&&(options.server||options.noServer)||options.server&&options.noServer)throw TypeError(`One and only one of the "port", "server", or "noServer" options must be specified`);if(options.port==null?options.server&&(this._server=options.server):(this._server=http.createServer((req,res)=>{let body=http.STATUS_CODES[426];res.writeHead(426,{"Content-Length":body.length,"Content-Type":`text/plain`}),res.end(body)}),this._server.listen(options.port,options.host,options.backlog,callback)),this._server){let emitConnection=this.emit.bind(this,`connection`);this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,`listening`),error:this.emit.bind(this,`error`),upgrade:(req,socket,head)=>{this.handleUpgrade(req,socket,head,emitConnection)}})}options.perMessageDeflate===!0&&(options.perMessageDeflate={}),options.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=options,this._state=0}address(){if(this.options.noServer)throw Error(`The server is operating in "noServer" mode`);return this._server?this._server.address():null}close(cb){if(this._state===2){cb&&this.once(`close`,()=>{cb(Error(`The server is not running`))}),process.nextTick(emitClose,this);return}if(cb&&this.once(`close`,cb),this._state!==1)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(emitClose,this);else{let server=this._server;this._removeListeners(),this._removeListeners=this._server=null,server.close(()=>{emitClose(this)})}}shouldHandle(req){if(this.options.path){let index=req.url.indexOf(`?`);if((index===-1?req.url:req.url.slice(0,index))!==this.options.path)return!1}return!0}handleUpgrade(req,socket,head,cb){socket.on(`error`,socketOnError);let key=req.headers[`sec-websocket-key`],upgrade=req.headers.upgrade,version$1=+req.headers[`sec-websocket-version`];if(req.method!==`GET`){abortHandshakeOrEmitwsClientError(this,req,socket,405,`Invalid HTTP method`);return}if(upgrade===void 0||upgrade.toLowerCase()!==`websocket`){abortHandshakeOrEmitwsClientError(this,req,socket,400,`Invalid Upgrade header`);return}if(key===void 0||!keyRegex.test(key)){abortHandshakeOrEmitwsClientError(this,req,socket,400,`Missing or invalid Sec-WebSocket-Key header`);return}if(version$1!==13&&version$1!==8){abortHandshakeOrEmitwsClientError(this,req,socket,400,`Missing or invalid Sec-WebSocket-Version header`,{"Sec-WebSocket-Version":`13, 8`});return}if(!this.shouldHandle(req)){abortHandshake(socket,400);return}let secWebSocketProtocol=req.headers[`sec-websocket-protocol`],protocols=new Set;if(secWebSocketProtocol!==void 0)try{protocols=subprotocol.parse(secWebSocketProtocol)}catch{abortHandshakeOrEmitwsClientError(this,req,socket,400,`Invalid Sec-WebSocket-Protocol header`);return}let secWebSocketExtensions=req.headers[`sec-websocket-extensions`],extensions={};if(this.options.perMessageDeflate&&secWebSocketExtensions!==void 0){let perMessageDeflate=new PerMessageDeflate(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let offers=extension.parse(secWebSocketExtensions);offers[PerMessageDeflate.extensionName]&&(perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]),extensions[PerMessageDeflate.extensionName]=perMessageDeflate)}catch{abortHandshakeOrEmitwsClientError(this,req,socket,400,`Invalid or unacceptable Sec-WebSocket-Extensions header`);return}}if(this.options.verifyClient){let info={origin:req.headers[`${version$1===8?`sec-websocket-origin`:`origin`}`],secure:!!(req.socket.authorized||req.socket.encrypted),req};if(this.options.verifyClient.length===2){this.options.verifyClient(info,(verified,code,message,headers)=>{if(!verified)return abortHandshake(socket,code||401,message,headers);this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)});return}if(!this.options.verifyClient(info))return abortHandshake(socket,401)}this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)}completeUpgrade(extensions,key,protocols,req,socket,head,cb){if(!socket.readable||!socket.writable)return socket.destroy();if(socket[kWebSocket])throw Error(`server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration`);if(this._state>0)return abortHandshake(socket,503);let headers=[`HTTP/1.1 101 Switching Protocols`,`Upgrade: websocket`,`Connection: Upgrade`,`Sec-WebSocket-Accept: ${createHash(`sha1`).update(key+GUID).digest(`base64`)}`],ws=new this.options.WebSocket(null,void 0,this.options);if(protocols.size){let protocol=this.options.handleProtocols?this.options.handleProtocols(protocols,req):protocols.values().next().value;protocol&&(headers.push(`Sec-WebSocket-Protocol: ${protocol}`),ws._protocol=protocol)}if(extensions[PerMessageDeflate.extensionName]){let params=extensions[PerMessageDeflate.extensionName].params,value=extension.format({[PerMessageDeflate.extensionName]:[params]});headers.push(`Sec-WebSocket-Extensions: ${value}`),ws._extensions=extensions}this.emit(`headers`,headers,req),socket.write(headers.concat(`\r
|
|
130
130
|
`).join(`\r
|
|
131
131
|
`)),socket.removeListener(`error`,socketOnError),ws.setSocket(socket,head,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(ws),ws.on(`close`,()=>{this.clients.delete(ws),this._shouldEmitClose&&!this.clients.size&&process.nextTick(emitClose,this)})),cb(ws,req)}};function addListeners(server,map){for(let event of Object.keys(map))server.on(event,map[event]);return function(){for(let event of Object.keys(map))server.removeListener(event,map[event])}}function emitClose(server){server._state=2,server.emit(`close`)}function socketOnError(){this.destroy()}function abortHandshake(socket,code,message,headers){message||=http.STATUS_CODES[code],headers={Connection:`close`,"Content-Type":`text/html`,"Content-Length":Buffer.byteLength(message),...headers},socket.once(`finish`,socket.destroy),socket.end(`HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n`+Object.keys(headers).map(h=>`${h}: ${headers[h]}`).join(`\r
|
|
132
132
|
`)+`\r
|
|
133
133
|
\r
|
|
134
|
-
`+message)}function abortHandshakeOrEmitwsClientError(server,req,socket,code,message,headers){if(server.listenerCount(`wsClientError`)){let err=Error(message);Error.captureStackTrace(err,abortHandshakeOrEmitwsClientError),server.emit(`wsClientError`,err,socket,req)}else abortHandshake(socket,code,message,headers)}})),require_ws=__commonJSMin(((exports,module)=>{let WebSocket=require_websocket();WebSocket.createWebSocketStream=require_stream(),WebSocket.Server=require_websocket_server(),WebSocket.Receiver=require_receiver(),WebSocket.Sender=require_sender(),WebSocket.WebSocket=WebSocket,WebSocket.WebSocketServer=WebSocket.Server,module.exports=WebSocket})),require_conductor=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Conductor=void 0;let utils_1=require_utils$3(),ws_1=__importDefault(require_ws()),protocol=__importStar(require_protocol()),node_os_1=__require(`node:os`),workflow_management_1=require_workflow_management(),node_assert_1$1=__importDefault(__require(`node:assert`));exports.Conductor=class{dbosExec;conductorKey;conductorURL;url;websocket=void 0;isShuttingDown=!1;isClosed=!1;pingPeriodMs=2e4;pingTimeoutMs=15e3;pingIntervalTimeout=void 0;reconnectDelayMs=1e3;reconnectTimeout=void 0;constructor(dbosExec,conductorKey,conductorURL){this.dbosExec=dbosExec,this.conductorKey=conductorKey,this.conductorURL=conductorURL;let appName=dbosExec.appName;(0,node_assert_1$1.default)(appName,`Application name must be set in configuration in order to use DBOS Conductor`),this.url=`${conductorURL.replace(/\/+$/,``)}/websocket/${appName}/${conductorKey}`}resetWebsocket(currWebsocket,currPing){clearInterval(currPing?.interval),clearTimeout(currPing?.timeout),currWebsocket&&(currWebsocket.terminate(),this.websocket===currWebsocket&&(this.websocket=void 0)),!(this.reconnectTimeout||this.isShuttingDown)&&(this.dbosExec.logger.debug(`Reconnecting in ${this.reconnectDelayMs/1e3} second`),this.reconnectTimeout=setTimeout(()=>{this.dispatchLoop()},this.reconnectDelayMs))}setPingInterval(currWebsocket,currPing){clearInterval(currPing.interval),clearTimeout(currPing.timeout),currPing.interval=setInterval(()=>{currPing.timeout=setTimeout(()=>{this.isShuttingDown||this.reconnectTimeout===void 0&&(this.dbosExec.logger.warn(`Connection to conductor lost. Reconnecting...`),this.resetWebsocket(currWebsocket,currPing))},this.pingTimeoutMs),currWebsocket.readyState===ws_1.default.OPEN&&(this.dbosExec.logger.debug(`Sending ping to conductor`),currWebsocket.ping())},this.pingPeriodMs)}dispatchLoop(){if(this.websocket&&(this.websocket.readyState===ws_1.default.OPEN||this.websocket.readyState===ws_1.default.CONNECTING)){this.dbosExec.logger.warn(`Conductor websocket already exists`);return}if(clearTimeout(this.pingIntervalTimeout?.timeout),clearInterval(this.pingIntervalTimeout?.interval),clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,this.isShuttingDown){this.dbosExec.logger.debug(`Not starting dispatch loop as conductor is shutting down`);return}try{this.dbosExec.logger.debug(`Connecting to conductor at ${this.url}`);let currWebsocket=new ws_1.default(this.url,{handshakeTimeout:5e3});this.websocket=currWebsocket;let currPing={interval:void 0,timeout:void 0};this.setPingInterval(currWebsocket,currPing),this.pingIntervalTimeout=currPing,currWebsocket.on(`open`,()=>{this.dbosExec.logger.debug(`Opened connection to DBOS conductor`),clearTimeout(currPing.timeout)}),currWebsocket.on(`pong`,()=>{this.dbosExec.logger.debug(`Received pong from conductor`),clearTimeout(currPing.timeout)}),currWebsocket.on(`message`,async data=>{this.dbosExec.logger.debug(`Received message from conductor: ${data}`);let baseMsg=JSON.parse(data),msgType=baseMsg.type,errorMsg;switch(clearTimeout(currPing.timeout),msgType){case protocol.MessageType.EXECUTOR_INFO:let infoResp=new protocol.ExecutorInfoResponse(baseMsg.request_id,utils_1.globalParams.executorID,utils_1.globalParams.appVersion,(0,node_os_1.hostname)(),`typescript`,utils_1.globalParams.dbosVersion);currWebsocket.send(JSON.stringify(infoResp)),this.dbosExec.logger.info(`Connected to DBOS conductor`);break;case protocol.MessageType.RECOVERY:let recoveryMsg=baseMsg,success=!0;try{await this.dbosExec.recoverPendingWorkflows(recoveryMsg.executor_ids)}catch(e){errorMsg=`Exception encountered when recovering workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg),success=!1}let recoveryResp=new protocol.RecoveryResponse(baseMsg.request_id,success,errorMsg);currWebsocket.send(JSON.stringify(recoveryResp));break;case protocol.MessageType.CANCEL:let cancelMsg=baseMsg,cancelSuccess=!0;try{await this.dbosExec.cancelWorkflow(cancelMsg.workflow_id)}catch(e){errorMsg=`Exception encountered when cancelling workflow ${cancelMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg),cancelSuccess=!1}let cancelResp=new protocol.CancelResponse(baseMsg.request_id,cancelSuccess,errorMsg);currWebsocket.send(JSON.stringify(cancelResp));break;case protocol.MessageType.RESUME:let resumeMsg=baseMsg,resumeSuccess=!0;try{await this.dbosExec.resumeWorkflow(resumeMsg.workflow_id)}catch(e){errorMsg=`Exception encountered when resuming workflow ${resumeMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg),resumeSuccess=!1}let resumeResp=new protocol.ResumeResponse(baseMsg.request_id,resumeSuccess,errorMsg);currWebsocket.send(JSON.stringify(resumeResp));break;case protocol.MessageType.RESTART:let restartMsg=baseMsg,restartSuccess=!0;try{await this.dbosExec.forkWorkflow(restartMsg.workflow_id,0)}catch(e){errorMsg=`Exception encountered when restarting workflow ${restartMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg),restartSuccess=!1}let restartResp=new protocol.RestartResponse(baseMsg.request_id,restartSuccess,errorMsg);currWebsocket.send(JSON.stringify(restartResp));break;case protocol.MessageType.FORK_WORKFLOW:let forkMsg=baseMsg,newWorkflowID=forkMsg.body.new_workflow_id;try{newWorkflowID=await this.dbosExec.forkWorkflow(forkMsg.body.workflow_id,forkMsg.body.start_step,{newWorkflowID,applicationVersion:forkMsg.body.application_version})}catch(e){errorMsg=`Exception encountered when forking workflow ${forkMsg.body.workflow_id} to new workflow ${newWorkflowID} on step ${forkMsg.body.start_step}, app version ${forkMsg.body.application_version}: ${e.message}`,this.dbosExec.logger.error(errorMsg),newWorkflowID=void 0}let forkResp=new protocol.ForkWorkflowResponse(baseMsg.request_id,newWorkflowID,errorMsg);currWebsocket.send(JSON.stringify(forkResp));break;case protocol.MessageType.LIST_WORKFLOWS:let listWFMsg=baseMsg,body=listWFMsg.body,listWFReq={workflowIDs:body.workflow_uuids,workflowName:body.workflow_name,authenticatedUser:body.authenticated_user,startTime:body.start_time,endTime:body.end_time,status:body.status,applicationVersion:body.application_version,forkedFrom:body.forked_from,limit:body.limit,offset:body.offset,sortDesc:body.sort_desc,loadInput:body.load_input??!1,loadOutput:body.load_output??!1},workflowsOutput=[];try{workflowsOutput=(await this.dbosExec.listWorkflows(listWFReq)).map(wf=>new protocol.WorkflowsOutput(wf))}catch(e){errorMsg=`Exception encountered when listing workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let wfsResp=new protocol.ListWorkflowsResponse(listWFMsg.request_id,workflowsOutput,errorMsg);currWebsocket.send(JSON.stringify(wfsResp));break;case protocol.MessageType.LIST_QUEUED_WORKFLOWS:let listQueuedWFMsg=baseMsg,bodyQueued=listQueuedWFMsg.body,listQueuedWFReq={workflowName:bodyQueued.workflow_name,startTime:bodyQueued.start_time,endTime:bodyQueued.end_time,status:bodyQueued.status,forkedFrom:bodyQueued.forked_from,limit:bodyQueued.limit,queueName:bodyQueued.queue_name,offset:bodyQueued.offset,sortDesc:bodyQueued.sort_desc,loadInput:bodyQueued.load_input??!1},queuedWFOutput=[];try{queuedWFOutput=(await this.dbosExec.listQueuedWorkflows(listQueuedWFReq)).map(wf=>new protocol.WorkflowsOutput(wf))}catch(e){errorMsg=`Exception encountered when listing queued workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let queuedWfsResp=new protocol.ListQueuedWorkflowsResponse(listQueuedWFMsg.request_id,queuedWFOutput,errorMsg);currWebsocket.send(JSON.stringify(queuedWfsResp));break;case protocol.MessageType.GET_WORKFLOW:let getWFMsg=baseMsg,wfOutput;try{let workflow=await this.dbosExec.getWorkflowStatus(getWFMsg.workflow_id);workflow&&(wfOutput=new protocol.WorkflowsOutput(workflow))}catch(e){errorMsg=`Exception encountered when getting workflow ${getWFMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let getWFResp=new protocol.GetWorkflowResponse(getWFMsg.request_id,wfOutput,errorMsg);currWebsocket.send(JSON.stringify(getWFResp));break;case protocol.MessageType.EXIST_PENDING_WORKFLOWS:let existPendingMsg=baseMsg,hasPendingWFs=!1;try{hasPendingWFs=(await this.dbosExec.systemDatabase.getPendingWorkflows(existPendingMsg.executor_id,existPendingMsg.application_version)).length>0}catch(e){errorMsg=`Exception encountered when checking for pending workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let existPendingResp=new protocol.ExistPendingWorkflowsResponse(baseMsg.request_id,hasPendingWFs,errorMsg);currWebsocket.send(JSON.stringify(existPendingResp));break;case protocol.MessageType.LIST_STEPS:let listStepsMessage=baseMsg,workflowSteps;try{workflowSteps=(await this.dbosExec.listWorkflowSteps(listStepsMessage.workflow_id))?.map(i=>new protocol.WorkflowSteps(i))}catch(e){errorMsg=`Exception encountered when listing steps ${listStepsMessage.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let listStepsResponse=new protocol.ListStepsResponse(listStepsMessage.request_id,workflowSteps,errorMsg);currWebsocket.send(JSON.stringify(listStepsResponse));break;case protocol.MessageType.RETENTION:let retentionMessage=baseMsg,retentionSuccess=!0;try{await this.dbosExec.systemDatabase.garbageCollect(retentionMessage.body.gc_cutoff_epoch_ms,retentionMessage.body.gc_rows_threshold),retentionMessage.body.timeout_cutoff_epoch_ms&&await(0,workflow_management_1.globalTimeout)(this.dbosExec.systemDatabase,retentionMessage.body.timeout_cutoff_epoch_ms)}catch(e){retentionSuccess=!1,errorMsg=`Exception encountered during enforcing retention policy: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let retentionResponse=new protocol.RetentionResponse(retentionMessage.request_id,retentionSuccess,errorMsg);currWebsocket.send(JSON.stringify(retentionResponse));break;case protocol.MessageType.GET_METRICS:let getMetricsMessage=baseMsg;this.dbosExec.logger.debug(`Received metrics request for time range ${getMetricsMessage.start_time} to ${getMetricsMessage.end_time}`);let metricsData=[];if(getMetricsMessage.metric_class===`workflow_step_count`)try{metricsData=(await this.dbosExec.systemDatabase.getMetrics(getMetricsMessage.start_time,getMetricsMessage.end_time)).map(m=>new protocol.MetricDataOutput(m.metricType,m.metricName,m.value))}catch(e){errorMsg=`Exception encountered when getting metrics: ${e.message}`,this.dbosExec.logger.error(errorMsg)}else errorMsg=`Unexpected metric class: ${getMetricsMessage.metric_class}`,this.dbosExec.logger.warn(errorMsg);let getMetricsResponse=new protocol.GetMetricsResponse(getMetricsMessage.request_id,metricsData,errorMsg);currWebsocket.send(JSON.stringify(getMetricsResponse));break;default:this.dbosExec.logger.warn(`Unknown message type: ${baseMsg.type}`);let unknownResp=new protocol.BaseResponse(baseMsg.type,baseMsg.request_id,`Unknown message type`);currWebsocket.send(JSON.stringify(unknownResp))}}),currWebsocket.on(`close`,()=>{if(this.isShuttingDown){this.dbosExec.logger.info(`Shutdown Conductor connection`);return}else this.reconnectTimeout===void 0&&(this.dbosExec.logger.warn(`Connection to conductor lost. Reconnecting.`),this.resetWebsocket(currWebsocket,currPing))}),currWebsocket.on(`unexpected-response`,(_,res)=>{this.dbosExec.logger.warn(`Unexpected response from conductor: ${res.statusCode} ${res.statusMessage}}`),this.reconnectTimeout===void 0&&this.resetWebsocket(currWebsocket,currPing)}),currWebsocket.on(`error`,err=>{this.dbosExec.logger.warn(`Unexpected exception in connection to conductor. Reconnecting: ${err.message}`),this.reconnectTimeout===void 0&&this.resetWebsocket(currWebsocket,currPing)})}catch(e){this.dbosExec.logger.warn(`Error in conductor loop. Reconnecting: ${e.message}`),this.reconnectTimeout===void 0&&this.resetWebsocket(this.websocket,this.pingIntervalTimeout)}}stop(){this.isShuttingDown=!0,clearInterval(this.pingIntervalTimeout?.interval),clearTimeout(this.pingIntervalTimeout?.timeout),clearTimeout(this.reconnectTimeout),this.websocket&&this.websocket.close(),this.isClosed=!0}}})),require_authdecorators=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.registerAuthChecker=void 0;let context_1=require_context(),dbos_1=require_dbos(),decorators_1=require_decorators(),error_1=require_error();function checkMethodAuth(methReg,args){let requiredRoles=methReg.getRequiredRoles();if(requiredRoles.length>0){dbos_1.DBOS.span?.setAttribute(`requiredRoles`,requiredRoles);let curRoles=dbos_1.DBOS.authenticatedRoles,authorized=!1,set=new Set(curRoles);for(let role of requiredRoles)if(set.has(role)){authorized=!0,(0,context_1.getCurrentContextStore)()&&((0,context_1.getCurrentContextStore)().assumedRole=role);break}if(!authorized){let err=new error_1.DBOSNotAuthorizedError(`User does not have a role with permission to call ${methReg.name}`,403);throw dbos_1.DBOS.span?.addEvent(`DBOSNotAuthorizedError`,{message:err.message}),err}}return args}let authChecker=new class{installMiddleware(methReg){let classAuth=methReg?.defaults?.getRegisteredInfo(decorators_1.DBOS_AUTH),methodAuth=methReg?.getRegisteredInfo(decorators_1.DBOS_AUTH);(classAuth?.requiredRole!==void 0||methodAuth?.requiredRole!==void 0)&&methReg.addEntryInterceptor(checkMethodAuth,10)}};function registerAuthChecker(){(0,decorators_1.registerMiddlewareInstaller)(authChecker)}exports.registerAuthChecker=registerAuthChecker})),require_dbos=__commonJSMin((exports=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOS=exports.runInternalStep=exports.getExecutor=void 0;let context_1=require_context(),dbos_executor_1=require_dbos_executor(),traces_1=require_traces(),workflow_1=require_workflow(),logs_1=require_logs$2(),error_1=require_error(),config_1=require_config(),scheduler_1=require_scheduler(),decorators_1=require_decorators(),utils_1=require_utils$3(),adminserver_1=require_adminserver(),node_crypto_1$1=__require(`node:crypto`),conductor_1=require_conductor(),system_database_1=require_system_database(),wfqueue_1=require_wfqueue(),authdecorators_1=require_authdecorators(),node_assert_1=__importDefault(__require(`node:assert`));function getExecutor(){if(!dbos_executor_1.DBOSExecutor.globalInstance)throw new error_1.DBOSExecutorNotInitializedError;return dbos_executor_1.DBOSExecutor.globalInstance}exports.getExecutor=getExecutor;function runInternalStep(callback,funcName,childWFID,assignedFuncID){if(DBOS.isWithinWorkflow()){if(DBOS.isInStep())return callback();if(DBOS.isInWorkflow())return dbos_executor_1.DBOSExecutor.globalInstance.runInternalStep(callback,funcName,DBOS.workflowID,assignedFuncID??(0,context_1.functionIDGetIncrement)(),childWFID);throw new error_1.DBOSInvalidWorkflowTransitionError(`Invalid call to \`${funcName}\` inside a \`transaction\` or \`procedure\``)}return callback()}exports.runInternalStep=runInternalStep;var DBOS=class DBOS{static adminServer=void 0;static conductor=void 0;static setConfig(config){(0,node_assert_1.default)(!DBOS.isInitialized(),`Cannot call DBOS.setConfig after DBOS.launch`),DBOS.#t=config}static isInitialized(){return!!dbos_executor_1.DBOSExecutor.globalInstance?.initialized}static async launch(options){let debugMode=options?.debugMode??process.env.DBOS_DEBUG_WORKFLOW_ID!==void 0,configFile=await(0,config_1.readConfigFile)(),internalConfig=DBOS.#t?(0,config_1.translateDbosConfig)(DBOS.#t,debugMode):(0,config_1.getDbosConfig)(configFile),runtimeConfig=DBOS.#t?(0,config_1.translateRuntimeConfig)(DBOS.#t):(0,config_1.getRuntimeConfig)(configFile);if(process.env.DBOS__CLOUD===`true`&&([internalConfig,runtimeConfig]=(0,config_1.overwriteConfigForDBOSCloud)(internalConfig,runtimeConfig,configFile)),utils_1.globalParams.enableOTLP=DBOS.#t?.enableOTLP??(0,utils_1.defaultEnableOTLP)(),(0,traces_1.isTraceContextWorking)()||(0,traces_1.installTraceContextManager)(internalConfig.name),(0,decorators_1.insertAllMiddleware)(),DBOS.isInitialized())return;process.env.DBOS__CLOUD!==`true`&&(DBOS.#t?.applicationVersion&&(utils_1.globalParams.appVersion=DBOS.#t.applicationVersion),DBOS.#t?.executorID&&(utils_1.globalParams.executorID=DBOS.#t.executorID)),options?.conductorKey&&(utils_1.globalParams.executorID=(0,node_crypto_1$1.randomUUID)()),dbos_executor_1.DBOSExecutor.createDebouncerWorkflow(),dbos_executor_1.DBOSExecutor.createInternalQueue(),dbos_executor_1.DBOSExecutor.globalInstance=new dbos_executor_1.DBOSExecutor(internalConfig,{debugMode}),(0,decorators_1.recordDBOSLaunch)();let executor=dbos_executor_1.DBOSExecutor.globalInstance;await executor.init();let debugWorkflowId=process.env.DBOS_DEBUG_WORKFLOW_ID;if(debugWorkflowId){DBOS.logger.info(`Debugging workflow "${debugWorkflowId}"`),await(await executor.executeWorkflowId(debugWorkflowId)).getResult(),DBOS.logger.info(`Workflow Debugging complete. Exiting process.`),await executor.destroy(),process.exit(0);return}await dbos_executor_1.DBOSExecutor.globalInstance.initEventReceivers();for(let[_n,ds]of decorators_1.transactionalDataSources)await ds.initialize();options?.conductorKey&&(options.conductorURL||=`wss://${process.env.DBOS_DOMAIN||`cloud.dbos.dev`}/conductor/v1alpha1`,DBOS.conductor=new conductor_1.Conductor(dbos_executor_1.DBOSExecutor.globalInstance,options.conductorKey,options.conductorURL),DBOS.conductor.dispatchLoop());let logger=DBOS.logger;if(runtimeConfig.runAdminServer){let adminApp=adminserver_1.DBOSAdminServer.setupAdminApp(executor);try{await adminserver_1.DBOSAdminServer.checkPortAvailabilityIPv4Ipv6(runtimeConfig.admin_port,logger),DBOS.adminServer=await new Promise((resolve,reject)=>{let server=adminApp.listen(runtimeConfig?.admin_port,()=>{DBOS.logger.debug(`DBOS Admin Server is running at http://localhost:${runtimeConfig?.admin_port}`),resolve(server)});server.on(`error`,err=>{reject(err)})})}catch{logger.warn(`Unable to start DBOS admin server on port ${runtimeConfig.admin_port}`)}}}static logRegisteredEndpoints(){if(dbos_executor_1.DBOSExecutor.globalInstance){wfqueue_1.wfQueueRunner.logRegisteredEndpoints(dbos_executor_1.DBOSExecutor.globalInstance);for(let lcl of(0,decorators_1.getLifecycleListeners)())lcl.logRegisteredEndpoints?.()}}static async shutdown(){if(DBOS.adminServer&&=(DBOS.adminServer.close(),void 0),DBOS.conductor){for(DBOS.conductor.stop();!DBOS.conductor.isClosed;)await(0,utils_1.sleepms)(500);DBOS.conductor=void 0}dbos_executor_1.DBOSExecutor.globalInstance&&(await dbos_executor_1.DBOSExecutor.globalInstance.deactivateEventReceivers(),await dbos_executor_1.DBOSExecutor.globalInstance.destroy(),dbos_executor_1.DBOSExecutor.globalInstance=void 0);for(let[_n,ds]of decorators_1.transactionalDataSources)await ds.destroy();utils_1.globalParams.appVersion=process.env.DBOS__APPVERSION||``,utils_1.globalParams.wasComputed=!1,utils_1.globalParams.appID=process.env.DBOS__APPID||``,utils_1.globalParams.executorID=process.env.DBOS__VMID||`local`,(0,decorators_1.recordDBOSShutdown)()}static async deactivateEventReceivers(){return dbos_executor_1.DBOSExecutor.globalInstance?.deactivateEventReceivers()}static async initEventReceivers(){return dbos_executor_1.DBOSExecutor.globalInstance?.initEventReceivers()}static get#e(){return getExecutor()}static#t;static get logger(){let lctx=(0,context_1.getCurrentContextStore)();if(lctx?.logger)return lctx.logger;let executor=dbos_executor_1.DBOSExecutor.globalInstance;return executor?executor.logger:new logs_1.GlobalLogger}static get tracer(){let executor=dbos_executor_1.DBOSExecutor.globalInstance;if(executor)return executor.tracer}static get span(){return(0,traces_1.getActiveSpan)()}static requestObject(){return(0,context_1.getCurrentContextStore)()?.request}static getRequest(){return this.requestObject()}static get request(){let r=DBOS.getRequest();if(!r)throw new error_1.DBOSError("`DBOS.request` accessed from outside of HTTP requests");return r}static get applicationVersion(){return utils_1.globalParams.appVersion}static get workflowID(){return(0,context_1.getCurrentContextStore)()?.workflowId}static get stepID(){if(DBOS.isInStep())return(0,context_1.getCurrentContextStore)()?.curStepFunctionId;if(DBOS.isInTransaction())return(0,context_1.getCurrentContextStore)()?.curTxFunctionId}static get stepStatus(){return(0,context_1.getCurrentContextStore)()?.stepStatus}static get authenticatedUser(){return(0,context_1.getCurrentContextStore)()?.authenticatedUser??``}static get authenticatedRoles(){return(0,context_1.getCurrentContextStore)()?.authenticatedRoles??[]}static get assumedRole(){return(0,context_1.getCurrentContextStore)()?.assumedRole??``}static isInTransaction(){return(0,context_1.getCurrentContextStore)()?.curTxFunctionId!==void 0}static isInStep(){return(0,context_1.getCurrentContextStore)()?.curStepFunctionId!==void 0}static isWithinWorkflow(){return(0,context_1.getCurrentContextStore)()?.workflowId!==void 0}static isInWorkflow(){return DBOS.isWithinWorkflow()&&!DBOS.isInTransaction()&&!DBOS.isInStep()}static async getEventDispatchState(svc,wfn,key){return(0,decorators_1.ensureDBOSIsLaunched)(`getEventDispatchState`),await DBOS.#e.getEventDispatchState(svc,wfn,key)}static async upsertEventDispatchState(state){return(0,decorators_1.ensureDBOSIsLaunched)(`upsertEventDispatchState`),await DBOS.#e.upsertEventDispatchState(state)}static getWorkflowStatus(workflowID){if((0,decorators_1.ensureDBOSIsLaunched)(`getWorkflowStatus`),DBOS.isWithinWorkflow()){if(DBOS.isInStep())return DBOS.#e.getWorkflowStatus(workflowID);if(DBOS.isInWorkflow())return DBOS.#e.getWorkflowStatus(workflowID,DBOS.workflowID,(0,context_1.functionIDGetIncrement)());throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `getWorkflowStatus` inside a `transaction` or `procedure`")}return DBOS.#e.getWorkflowStatus(workflowID)}static async getResult(workflowID,timeoutSeconds){(0,decorators_1.ensureDBOSIsLaunched)(`getResult`);let timerFuncID;return DBOS.isWithinWorkflow()&&timeoutSeconds!==void 0&&(timerFuncID=(0,context_1.functionIDGetIncrement)()),await DBOS.getResultInternal(workflowID,timeoutSeconds,timerFuncID,void 0)}static async getResultInternal(workflowID,timeoutSeconds,timerFuncID,assignedFuncID){return await runInternalStep(async()=>{let rres=await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.awaitWorkflowResult(workflowID,timeoutSeconds,DBOS.workflowID,timerFuncID);if(!rres)return null;if(rres?.cancelled)throw new error_1.DBOSAwaitedWorkflowCancelledError(workflowID);return dbos_executor_1.DBOSExecutor.reviveResultOrError(rres)},`DBOS.getResult`,workflowID,assignedFuncID)}static retrieveWorkflow(workflowID){if((0,decorators_1.ensureDBOSIsLaunched)(`retrieveWorkflow`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `retrieveWorkflow` inside a `transaction` or `step`");return new workflow_1.RetrievedHandle(dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase,workflowID)}return DBOS.#e.retrieveWorkflow(workflowID)}static async listWorkflows(input){return(0,decorators_1.ensureDBOSIsLaunched)(`listWorkflows`),await runInternalStep(async()=>await DBOS.#e.listWorkflows(input),`DBOS.listWorkflows`)}static async listQueuedWorkflows(input){return(0,decorators_1.ensureDBOSIsLaunched)(`listQueuedWorkflows`),await runInternalStep(async()=>await DBOS.#e.listQueuedWorkflows(input),`DBOS.listQueuedWorkflows`)}static async listWorkflowSteps(workflowID){return(0,decorators_1.ensureDBOSIsLaunched)(`listWorkflowSteps`),await runInternalStep(async()=>await DBOS.#e.listWorkflowSteps(workflowID),`DBOS.listWorkflowSteps`)}static async cancelWorkflow(workflowID){return(0,decorators_1.ensureDBOSIsLaunched)(`cancelWorkflow`),await runInternalStep(async()=>await DBOS.#e.cancelWorkflow(workflowID),`DBOS.cancelWorkflow`)}static async resumeWorkflow(workflowID){return(0,decorators_1.ensureDBOSIsLaunched)(`resumeWorkflow`),await runInternalStep(async()=>await DBOS.#e.resumeWorkflow(workflowID),`DBOS.resumeWorkflow`),this.retrieveWorkflow(workflowID)}static async forkWorkflow(workflowID,startStep,options){(0,decorators_1.ensureDBOSIsLaunched)(`forkWorkflow`);let forkedID=await runInternalStep(async()=>await DBOS.#e.forkWorkflow(workflowID,startStep,options),`DBOS.forkWorkflow`);return this.retrieveWorkflow(forkedID)}static async sleepms(durationMS){if(DBOS.isWithinWorkflow()&&!DBOS.isInStep()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.sleep` inside a `transaction`");let functionID=(0,context_1.functionIDGetIncrement)();return durationMS<=0?void 0:await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.durableSleepms(DBOS.workflowID,functionID,durationMS)}await(0,utils_1.sleepms)(durationMS)}static async sleepSeconds(durationSec){return DBOS.sleepms(durationSec*1e3)}static async sleep(durationMS){return DBOS.sleepms(durationMS)}static async now(){return DBOS.isInWorkflow()?runInternalStep(async()=>Promise.resolve(Date.now()),`DBOS.now`):Date.now()}static async randomUUID(){return DBOS.isInWorkflow()?runInternalStep(async()=>Promise.resolve((0,node_crypto_1$1.randomUUID)()),`DBOS.randomUUID`):(0,node_crypto_1$1.randomUUID)()}static async withNextWorkflowID(workflowID,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.#n({idAssignedForNextWorkflow:workflowID},callback)}static async withAuthedContext(authedUser,authedRoles,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`auth`),DBOS.#n({authenticatedUser:authedUser,authenticatedRoles:authedRoles},callback)}static async withNamedContext(callerName,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`tracing`),DBOS.#n({operationCaller:callerName},callback)}static async withWorkflowQueue(queueName,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.#n({queueAssignedForWorkflows:queueName},callback)}static async withWorkflowTimeout(timeoutMS,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.#n({workflowTimeoutMS:timeoutMS},callback)}static async runWithContext(options,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`contexts`),DBOS.#n(options,callback)}static async#n(options,callback){let pctx=(0,context_1.getCurrentContextStore)();if(pctx){let existing={};for(let k of Object.keys(options))Object.hasOwn(pctx,k)&&(existing[k]=options[k]),pctx[k]=options[k];try{return await callback()}finally{for(let k of Object.keys(options))Object.hasOwn(existing,k)?pctx[k]=existing[k]:delete pctx[k]}}else return await(0,context_1.runWithTopContext)(options,callback)}static startWorkflow(target,params){(0,decorators_1.ensureDBOSIsLaunched)(`workflows`);let instance=typeof target==`function`?null:target;if(instance&&typeof instance!=`function`&&!(instance instanceof decorators_1.ConfiguredInstance))throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call `startWorkflow` on an object that is not a `ConfiguredInstance`");if(params&¶ms.queueName){let wfqueue=this.#e.getQueueByName(params.queueName),queuePartitionKey=params.enqueueOptions?.queuePartitionKey;if(wfqueue.partitionQueue&&!queuePartitionKey)throw Error(`A workflow cannot be enqueued on partitioned queue ${params.queueName} without a partition key`);if(queuePartitionKey&&!wfqueue.partitionQueue)throw Error(`You can only use a partition key on a partition-enabled queue. Key ${queuePartitionKey} was used with non-partitioned queue ${params.queueName}`);if(queuePartitionKey&¶ms.enqueueOptions?.deduplicationID)throw Error(`Deduplication is not supported for partitioned queues`)}let regOps=(0,decorators_1.getRegisteredOperations)(target);return new Proxy(target,{apply(target$1,_thisArg,args){let regOp=(0,decorators_1.getFunctionRegistration)(target$1);if(!regOp){let name=typeof target$1==`function`?target$1.name:target$1.toString();throw new error_1.DBOSNotRegisteredError(name,`${name} is not a registered DBOS workflow function`)}return DBOS.#r(instance,regOp,args,params)},get(target$1,p$1,receiver){let func=Reflect.get(target$1,p$1,receiver),regOp=(0,decorators_1.getFunctionRegistration)(func)??regOps.find(op=>op.name===p$1);if(regOp)return(...args)=>DBOS.#r(instance,regOp,args,params);let name=typeof p$1==`string`?p$1:String(p$1);throw new error_1.DBOSNotRegisteredError(name,`${name} is not a registered DBOS workflow function`)}})}static async send(destinationID,message,topic,idempotencyKey){if((0,decorators_1.ensureDBOSIsLaunched)(`send`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.send` inside a `step` or `transaction`");if(idempotencyKey)throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.send` with an idempotency key from within a workflow");let functionID=(0,context_1.functionIDGetIncrement)();return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.send(DBOS.workflowID,functionID,destinationID,utils_1.DBOSJSON.stringify(message),topic)}return DBOS.#e.runSendTempWF(destinationID,message,topic,idempotencyKey)}static async recv(topic,timeoutSeconds){if((0,decorators_1.ensureDBOSIsLaunched)(`recv`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.recv` inside a `step` or `transaction`");let functionID=(0,context_1.functionIDGetIncrement)(),timeoutFunctionID=(0,context_1.functionIDGetIncrement)();return utils_1.DBOSJSON.parse(await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.recv(DBOS.workflowID,functionID,timeoutFunctionID,topic,timeoutSeconds))}throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call `DBOS.recv` outside of a workflow")}static async setEvent(key,value){if((0,decorators_1.ensureDBOSIsLaunched)(`setEvent`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.setEvent` inside a `step` or `transaction`");let functionID=(0,context_1.functionIDGetIncrement)();return dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.setEvent(DBOS.workflowID,functionID,key,utils_1.DBOSJSON.stringify(value))}throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call `DBOS.setEvent` outside of a workflow")}static async getEvent(workflowID,key,timeoutSeconds){if((0,decorators_1.ensureDBOSIsLaunched)(`getEvent`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.getEvent` inside a `step` or `transaction`");let functionID=(0,context_1.functionIDGetIncrement)(),timeoutFunctionID=(0,context_1.functionIDGetIncrement)(),params={workflowID:DBOS.workflowID,functionID,timeoutFunctionID};return utils_1.DBOSJSON.parse(await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.getEvent(workflowID,key,timeoutSeconds??dbos_executor_1.DBOSExecutor.defaultNotificationTimeoutSec,params))}return DBOS.#e.getEvent(workflowID,key,timeoutSeconds)}static async writeStream(key,value){if((0,decorators_1.ensureDBOSIsLaunched)(`writeStream`),DBOS.isWithinWorkflow())if(DBOS.isInWorkflow()){let functionID=(0,context_1.functionIDGetIncrement)();return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.writeStreamFromWorkflow(DBOS.workflowID,functionID,key,value)}else if(DBOS.isInStep())return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.writeStreamFromStep(DBOS.workflowID,key,value);else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.writeStream` outside of a workflow or step");else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.writeStream` outside of a workflow or step")}static async closeStream(key){if((0,decorators_1.ensureDBOSIsLaunched)(`closeStream`),DBOS.isWithinWorkflow())if(DBOS.isInWorkflow()){let functionID=(0,context_1.functionIDGetIncrement)();return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.closeStream(DBOS.workflowID,functionID,key)}else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.closeStream` outside of a workflow or step");else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.closeStream` outside of a workflow")}static async*readStream(workflowID,key){(0,decorators_1.ensureDBOSIsLaunched)(`readStream`);let offset=0;for(;;)try{let value=await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.readStream(workflowID,key,offset);if(value===system_database_1.DBOS_STREAM_CLOSED_SENTINEL)break;yield value,offset+=1}catch(error){if(error instanceof Error&&error.message.includes(`No value found`)){let status=await DBOS.getWorkflowStatus(workflowID);if(!status||!(0,workflow_1.isWorkflowActive)(status.status))break;await(0,utils_1.sleepms)(1e3);continue}throw error}}static registerScheduled(func,config){scheduler_1.ScheduledReceiver.registerScheduled(func,config)}static scheduled(config){function methodDecorator(target,propertyKey,descriptor){return descriptor.value&&DBOS.registerScheduled(descriptor.value,{...config,ctorOrProto:target,name:String(propertyKey)}),descriptor}return methodDecorator}static workflow(config={}){function decorator(target,propertyKey,inDescriptor){let{descriptor,registration}=(0,decorators_1.wrapDBOSFunctionAndRegisterByUniqueNameDec)(target,propertyKey,inDescriptor),invoker=DBOS.#i(registration,config);return descriptor.value=invoker,registration.wrappedFunction=invoker,(0,decorators_1.registerFunctionWrapper)(invoker,registration),descriptor}return decorator}static registerWorkflow(func,config){let registration=(0,decorators_1.wrapDBOSFunctionAndRegisterByUniqueName)(config?.ctorOrProto,config?.className,config?.name??func.name,func);return DBOS.#i(registration,config)}static async#r($this,regOP,args,params={},startWfFuncId){(0,decorators_1.ensureDBOSIsLaunched)(`workflows`);let wfId=(0,context_1.getNextWFID)(params.workflowID),ppctx=(0,context_1.getCurrentContextStore)(),queueName=params.queueName??ppctx?.queueAssignedForWorkflows,timeoutMS=params.timeoutMS??ppctx?.workflowTimeoutMS,instance=$this===void 0||typeof $this==`function`?void 0:$this;if(instance&&!(instance instanceof decorators_1.ConfiguredInstance))throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call a `workflow` function on an object that is not a `ConfiguredInstance`");if(DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a `workflow` function from within a `step` or `transaction`");let funcId=startWfFuncId??(0,context_1.functionIDGetIncrement)(),pctx=(0,context_1.getCurrentContextStore)(),pwfid=pctx.workflowId;return await invokeRegOp({workflowUUID:wfId||pwfid+`-`+funcId,configuredInstance:instance,queueName,timeoutMS,deadlineEpochMS:params.timeoutMS===null||pctx?.workflowTimeoutMS===null?void 0:pctx?.deadlineEpochMS,enqueueOptions:params.enqueueOptions},pwfid,funcId)}else return await invokeRegOp({workflowUUID:wfId,queueName,enqueueOptions:params.enqueueOptions,configuredInstance:instance,timeoutMS},void 0,void 0);function invokeRegOp(wfParams,workflowID,funcNum){if(regOP.workflowConfig){let func=regOP.registeredFunction;return dbos_executor_1.DBOSExecutor.globalInstance.internalWorkflow(func,wfParams,workflowID,funcNum,...args)}if(regOP.stepConfig){let func=regOP.registeredFunction;return dbos_executor_1.DBOSExecutor.globalInstance.startStepTempWF(func,wfParams,workflowID,funcNum,...args)}throw new error_1.DBOSNotRegisteredError(regOP.name,`${regOP.name} is not a registered DBOS workflow, step, or transaction function`)}}static#i(registration,config){registration.setWorkflowConfig(config??{});let invoker=async function(...rawArgs){if((0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.isInWorkflow()){let startWfFuncId=(0,context_1.functionIDGetIncrement)(),getResFuncID=(0,context_1.functionIDGetIncrement)();return await(await DBOS.#r(this,registration,rawArgs,void 0,startWfFuncId)).getResult(getResFuncID)}return await(await DBOS.#r(this,registration,rawArgs)).getResult()};return(0,decorators_1.registerFunctionWrapper)(invoker,registration),Object.defineProperty(invoker,`name`,{value:registration.name}),invoker}static step(config={}){function decorator(target,propertyKey,inDescriptor){let{descriptor,registration}=(0,decorators_1.wrapDBOSFunctionAndRegisterByUniqueNameDec)(target,propertyKey,inDescriptor);registration.setStepConfig(config);let invokeWrapper=async function(...rawArgs){(0,decorators_1.ensureDBOSIsLaunched)(`steps`);let inst;if(!(this===void 0||typeof this==`function`)&&(inst=this,!(inst instanceof decorators_1.ConfiguredInstance)))throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call a `step` function on an object that is not a `ConfiguredInstance`");if(DBOS.isWithinWorkflow()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a `step` function from within a `transaction`");return DBOS.isInStep()?registration.registeredFunction.call(this,...rawArgs):await dbos_executor_1.DBOSExecutor.globalInstance.callStepFunction(registration.registeredFunction,void 0,void 0,inst??null,...rawArgs)}let wfId=(0,context_1.getNextWFID)(void 0),wfParams={configuredInstance:inst,workflowUUID:wfId};return await DBOS.#e.runStepTempWF(registration.registeredFunction,wfParams,...rawArgs)};return descriptor.value=invokeWrapper,registration.wrappedFunction=invokeWrapper,(0,decorators_1.registerFunctionWrapper)(invokeWrapper,registration),Object.defineProperty(invokeWrapper,`name`,{value:registration.name}),descriptor}return decorator}static registerStep(func,config={}){let name=config.name??func.name,reg=(0,decorators_1.wrapDBOSFunctionAndRegister)(config?.ctorOrProto,config?.className,name,func),invokeWrapper=async function(...rawArgs){(0,decorators_1.ensureDBOSIsLaunched)(`steps`);let inst=this,callFunc=reg.registeredFunction??reg.origFunction;if(DBOS.isWithinWorkflow()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a `step` function from within a `transaction`");return DBOS.isInStep()?callFunc.call(this,...rawArgs):await dbos_executor_1.DBOSExecutor.globalInstance.callStepFunction(callFunc,name,config,inst??null,...rawArgs)}if((0,context_1.getNextWFID)(void 0))throw new error_1.DBOSInvalidWorkflowTransitionError(`Invalid call to step '${name}' outside of a workflow; with directive to start a workflow.`);return callFunc.call(this,...rawArgs)};return(0,decorators_1.registerFunctionWrapper)(invokeWrapper,reg),Object.defineProperty(invokeWrapper,`name`,{value:name}),invokeWrapper}static runStep(func,config={}){(0,decorators_1.ensureDBOSIsLaunched)(`steps`);let name=config.name??func.name;if(DBOS.isWithinWorkflow()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a runStep from within a `transaction`");return DBOS.isInStep()?func():dbos_executor_1.DBOSExecutor.globalInstance.callStepFunction(func,name,config,null)}if((0,context_1.getNextWFID)(void 0))throw new error_1.DBOSInvalidWorkflowTransitionError(`Invalid call to step '${name}' outside of a workflow; with directive to start a workflow.`);return func()}static registerSerialization(serReg){if(DBOS.isInitialized())throw TypeError(`Serializers/deserializers should not be registered after DBOS.launch()`);(0,utils_1.registerSerializationRecipe)(serReg)}static defaultRequiredRole(anyOf){function clsdec(ctor){let clsreg=(0,decorators_1.associateClassWithExternal)(decorators_1.DBOS_AUTH,ctor);clsreg.requiredRole=anyOf,(0,authdecorators_1.registerAuthChecker)()}return clsdec}static requiredRole(anyOf){function apidec(target,propertyKey,inDescriptor){let rr=(0,decorators_1.associateMethodWithExternal)(decorators_1.DBOS_AUTH,target,void 0,propertyKey.toString(),inDescriptor.value);return rr.regInfo.requiredRole=anyOf,(0,authdecorators_1.registerAuthChecker)(),inDescriptor.value=rr.registration.wrappedFunction??rr.registration.registeredFunction,inDescriptor}return apidec}static registerLifecycleCallback(lcl){(0,decorators_1.registerLifecycleCallback)(lcl)}static registerMiddlewareInstaller(mwp){(0,decorators_1.registerMiddlewareInstaller)(mwp)}static associateClassWithInfo(external,cls){return(0,decorators_1.associateClassWithExternal)(external,cls)}static associateFunctionWithInfo(external,func,target){return(0,decorators_1.associateMethodWithExternal)(external,target.ctorOrProto,target.className,target.name??func.name,func)}static associateParamWithInfo(external,func,target){return(0,decorators_1.associateParameterWithExternal)(external,target.ctorOrProto,target.className,target.name??func?.name??`<unknown>`,func,target.param)}static getAssociatedInfo(external,cls,funcName){return(0,decorators_1.getRegistrationsForExternal)(external,cls,funcName)}};exports.DBOS=DBOS})),require_workflow=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RetrievedHandle=exports.InvokedHandle=exports.isWorkflowActive=exports.StatusString=exports.DEFAULT_MAX_RECOVERY_ATTEMPTS=void 0;let utils_1=require_utils$3(),dbos_1=require_dbos(),dbos_executor_1=require_dbos_executor();exports.DEFAULT_MAX_RECOVERY_ATTEMPTS=100,exports.StatusString={PENDING:`PENDING`,SUCCESS:`SUCCESS`,ERROR:`ERROR`,MAX_RECOVERY_ATTEMPTS_EXCEEDED:`MAX_RECOVERY_ATTEMPTS_EXCEEDED`,CANCELLED:`CANCELLED`,ENQUEUED:`ENQUEUED`};function isWorkflowActive(status){return status===exports.StatusString.PENDING||status===exports.StatusString.ENQUEUED}exports.isWorkflowActive=isWorkflowActive;var InvokedHandle=class{systemDatabase;workflowPromise;workflowUUID;workflowName;constructor(systemDatabase,workflowPromise,workflowUUID,workflowName){this.systemDatabase=systemDatabase,this.workflowPromise=workflowPromise,this.workflowUUID=workflowUUID,this.workflowName=workflowName}getWorkflowUUID(){return this.workflowUUID}get workflowID(){return this.workflowUUID}async getStatus(){return await dbos_1.DBOS.getWorkflowStatus(this.workflowUUID)}async getResult(funcIdForGet){return await(0,dbos_1.runInternalStep)(async()=>await this.workflowPromise,`DBOS.getResult`,this.workflowUUID,funcIdForGet)}async getWorkflowInputs(){let status=await this.systemDatabase.getWorkflowStatus(this.workflowUUID);return utils_1.DBOSJSON.parse(status.input)}};exports.InvokedHandle=InvokedHandle;var RetrievedHandle=class{systemDatabase;workflowUUID;constructor(systemDatabase,workflowUUID){this.systemDatabase=systemDatabase,this.workflowUUID=workflowUUID}getWorkflowUUID(){return this.workflowUUID}get workflowID(){return this.workflowUUID}async getStatus(){return await dbos_1.DBOS.getWorkflowStatus(this.workflowUUID)}async getResult(funcIdForGet){return await dbos_1.DBOS.getResultInternal(this.workflowUUID,void 0,void 0,funcIdForGet)}async getWorkflowInputs(){let status=await this.systemDatabase.getWorkflowStatus(this.workflowUUID);return utils_1.DBOSJSON.parse(status.input)}};exports.RetrievedHandle=RetrievedHandle,(0,utils_1.registerSerializationRecipe)({name:`DBOS.WorkflowHandle`,isApplicable:v=>v instanceof RetrievedHandle||v instanceof InvokedHandle,serialize:v=>({wfid:v.workflowID}),deserialize:s=>new RetrievedHandle(dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase,s.wfid)})})),require_collector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TelemetryCollector=void 0;var SignalsQueue=class{data=[];push(signal){this.data.push(signal)}pop(){return this.data.shift()}size(){return this.data.length}};exports.TelemetryCollector=class{exporter;signals=new SignalsQueue;signalBufferID;processAndExportSignalsIntervalMs=100;constructor(exporter){this.exporter=exporter,this.signalBufferID=setInterval(()=>{this.processAndExportSignals()},this.processAndExportSignalsIntervalMs)}async destroy(){clearInterval(this.signalBufferID),await this.processAndExportSignals(),await this.exporter?.flush()}push(signal){this.signals.push(signal)}pop(){return this.signals.pop()}async processAndExportSignals(){let batch=[];for(;this.signals.size()>0;){let signal=this.pop();if(!signal)break;batch.push(signal)}if(batch.length>0&&this.exporter)try{await this.exporter.export(batch)}catch(e){console.error(e.message)}}}})),OTLPExporterBase,init_OTLPExporterBase=__esmMin((()=>{OTLPExporterBase=class{_delegate;constructor(_delegate){this._delegate=_delegate}export(items,resultCallback){this._delegate.export(items,resultCallback)}forceFlush(){return this._delegate.forceFlush()}shutdown(){return this._delegate.shutdown()}}})),OTLPExporterError,init_types=__esmMin((()=>{OTLPExporterError=class extends Error{code;name=`OTLPExporterError`;data;constructor(message,code,data){super(message),this.data=data,this.code=code}}}));function validateTimeoutMillis(timeoutMillis){if(Number.isFinite(timeoutMillis)&&timeoutMillis>0)return timeoutMillis;throw Error(`Configuration: timeoutMillis is invalid, expected number greater than 0 (actual: '${timeoutMillis}')`)}function wrapStaticHeadersInFunction(headers){if(headers!=null)return async()=>headers}function mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration){return{timeoutMillis:validateTimeoutMillis(userProvidedConfiguration.timeoutMillis??fallbackConfiguration.timeoutMillis??defaultConfiguration.timeoutMillis),concurrencyLimit:userProvidedConfiguration.concurrencyLimit??fallbackConfiguration.concurrencyLimit??defaultConfiguration.concurrencyLimit,compression:userProvidedConfiguration.compression??fallbackConfiguration.compression??defaultConfiguration.compression}}function getSharedConfigurationDefaults(){return{timeoutMillis:1e4,concurrencyLimit:30,compression:`none`}}var init_shared_configuration=__esmMin((()=>{})),CompressionAlgorithm,init_legacy_node_configuration=__esmMin((()=>{(function(CompressionAlgorithm$1){CompressionAlgorithm$1.NONE=`none`,CompressionAlgorithm$1.GZIP=`gzip`})(CompressionAlgorithm||={})}));function createBoundedQueueExportPromiseHandler(options){return new BoundedQueueExportPromiseHandler(options.concurrencyLimit)}var BoundedQueueExportPromiseHandler,init_bounded_queue_export_promise_handler=__esmMin((()=>{BoundedQueueExportPromiseHandler=class{_concurrencyLimit;_sendingPromises=[];constructor(concurrencyLimit){this._concurrencyLimit=concurrencyLimit}pushPromise(promise){if(this.hasReachedLimit())throw Error(`Concurrency Limit reached`);this._sendingPromises.push(promise);let popPromise=()=>{let index=this._sendingPromises.indexOf(promise);this._sendingPromises.splice(index,1)};promise.then(popPromise,popPromise)}hasReachedLimit(){return this._sendingPromises.length>=this._concurrencyLimit}async awaitAll(){await Promise.all(this._sendingPromises)}}}));function isPartialSuccessResponse(response){return Object.prototype.hasOwnProperty.call(response,`partialSuccess`)}function createLoggingPartialSuccessResponseHandler(){return{handleResponse(response){response==null||!isPartialSuccessResponse(response)||response.partialSuccess==null||Object.keys(response.partialSuccess).length===0||diag.warn(`Received Partial Success response:`,JSON.stringify(response.partialSuccess))}}}var init_logging_response_handler=__esmMin((()=>{}));function createOtlpExportDelegate(components,settings){return new OTLPExportDelegate(components.transport,components.serializer,createLoggingPartialSuccessResponseHandler(),components.promiseHandler,settings.timeout)}var import_src$2,OTLPExportDelegate,init_otlp_export_delegate=__esmMin((()=>{import_src$2=require_src$8(),init_types(),init_logging_response_handler(),OTLPExportDelegate=class{_transport;_serializer;_responseHandler;_promiseQueue;_timeout;_diagLogger;constructor(_transport,_serializer,_responseHandler,_promiseQueue,_timeout){this._transport=_transport,this._serializer=_serializer,this._responseHandler=_responseHandler,this._promiseQueue=_promiseQueue,this._timeout=_timeout,this._diagLogger=diag.createComponentLogger({namespace:`OTLPExportDelegate`})}export(internalRepresentation,resultCallback){if(this._diagLogger.debug(`items to be sent`,internalRepresentation),this._promiseQueue.hasReachedLimit()){resultCallback({code:import_src$2.ExportResultCode.FAILED,error:Error(`Concurrent export limit reached`)});return}let serializedRequest=this._serializer.serializeRequest(internalRepresentation);if(serializedRequest==null){resultCallback({code:import_src$2.ExportResultCode.FAILED,error:Error(`Nothing to send`)});return}this._promiseQueue.pushPromise(this._transport.send(serializedRequest,this._timeout).then(response=>{if(response.status===`success`){if(response.data!=null)try{this._responseHandler.handleResponse(this._serializer.deserializeResponse(response.data))}catch(e){this._diagLogger.warn(`Export succeeded but could not deserialize response - is the response specification compliant?`,e,response.data)}resultCallback({code:import_src$2.ExportResultCode.SUCCESS});return}else if(response.status===`failure`&&response.error){resultCallback({code:import_src$2.ExportResultCode.FAILED,error:response.error});return}else response.status===`retryable`?resultCallback({code:import_src$2.ExportResultCode.FAILED,error:new OTLPExporterError(`Export failed with retryable status`)}):resultCallback({code:import_src$2.ExportResultCode.FAILED,error:new OTLPExporterError(`Export failed with unknown error`)})},reason=>resultCallback({code:import_src$2.ExportResultCode.FAILED,error:reason})))}forceFlush(){return this._promiseQueue.awaitAll()}async shutdown(){this._diagLogger.debug(`shutdown started`),await this.forceFlush(),this._transport.shutdown()}}}));function createOtlpNetworkExportDelegate(options,serializer,transport){return createOtlpExportDelegate({transport,serializer,promiseHandler:createBoundedQueueExportPromiseHandler(options)},{timeout:options.timeoutMillis})}var init_otlp_network_export_delegate=__esmMin((()=>{init_bounded_queue_export_promise_handler(),init_otlp_export_delegate()})),esm_exports=__export({CompressionAlgorithm:()=>CompressionAlgorithm,OTLPExporterBase:()=>OTLPExporterBase,OTLPExporterError:()=>OTLPExporterError,createOtlpNetworkExportDelegate:()=>createOtlpNetworkExportDelegate,getSharedConfigurationDefaults:()=>getSharedConfigurationDefaults,mergeOtlpSharedConfigurationWithDefaults:()=>mergeOtlpSharedConfigurationWithDefaults}),init_esm=__esmMin((()=>{init_OTLPExporterBase(),init_types(),init_shared_configuration(),init_legacy_node_configuration(),init_otlp_network_export_delegate()})),require_aspromise=__commonJSMin(((exports,module)=>{module.exports=asPromise;function asPromise(fn,ctx){for(var params=Array(arguments.length-1),offset=0,index=2,pending=!0;index<arguments.length;)params[offset++]=arguments[index++];return new Promise(function(resolve,reject){params[offset]=function(err){if(pending)if(pending=!1,err)reject(err);else{for(var params$1=Array(arguments.length-1),offset$1=0;offset$1<params$1.length;)params$1[offset$1++]=arguments[offset$1];resolve.apply(null,params$1)}};try{fn.apply(ctx||null,params)}catch(err){pending&&(pending=!1,reject(err))}})}})),require_base64=__commonJSMin((exports=>{var base64=exports;base64.length=function(string){var p$1=string.length;if(!p$1)return 0;for(var n=0;--p$1%4>1&&string.charAt(p$1)===`=`;)++n;return Math.ceil(string.length*3)/4-n};for(var b64=Array(64),s64=Array(123),i=0;i<64;)s64[b64[i]=i<26?i+65:i<52?i+71:i<62?i-4:i-59|43]=i++;base64.encode=function(buffer,start,end){for(var parts=null,chunk=[],i=0,j=0,t;start<end;){var b=buffer[start++];switch(j){case 0:chunk[i++]=b64[b>>2],t=(b&3)<<4,j=1;break;case 1:chunk[i++]=b64[t|b>>4],t=(b&15)<<2,j=2;break;case 2:chunk[i++]=b64[t|b>>6],chunk[i++]=b64[b&63],j=0;break}i>8191&&((parts||=[]).push(String.fromCharCode.apply(String,chunk)),i=0)}return j&&(chunk[i++]=b64[t],chunk[i++]=61,j===1&&(chunk[i++]=61)),parts?(i&&parts.push(String.fromCharCode.apply(String,chunk.slice(0,i))),parts.join(``)):String.fromCharCode.apply(String,chunk.slice(0,i))};var invalidEncoding=`invalid encoding`;base64.decode=function(string,buffer,offset){for(var start=offset,j=0,t,i=0;i<string.length;){var c=string.charCodeAt(i++);if(c===61&&j>1)break;if((c=s64[c])===void 0)throw Error(invalidEncoding);switch(j){case 0:t=c,j=1;break;case 1:buffer[offset++]=t<<2|(c&48)>>4,t=c,j=2;break;case 2:buffer[offset++]=(t&15)<<4|(c&60)>>2,t=c,j=3;break;case 3:buffer[offset++]=(t&3)<<6|c,j=0;break}}if(j===1)throw Error(invalidEncoding);return offset-start},base64.test=function(string){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string)}})),require_eventemitter=__commonJSMin(((exports,module)=>{module.exports=EventEmitter;function EventEmitter(){this._listeners={}}EventEmitter.prototype.on=function(evt,fn,ctx){return(this._listeners[evt]||(this._listeners[evt]=[])).push({fn,ctx:ctx||this}),this},EventEmitter.prototype.off=function(evt,fn){if(evt===void 0)this._listeners={};else if(fn===void 0)this._listeners[evt]=[];else for(var listeners=this._listeners[evt],i=0;i<listeners.length;)listeners[i].fn===fn?listeners.splice(i,1):++i;return this},EventEmitter.prototype.emit=function(evt){var listeners=this._listeners[evt];if(listeners){for(var args=[],i=1;i<arguments.length;)args.push(arguments[i++]);for(i=0;i<listeners.length;)listeners[i].fn.apply(listeners[i++].ctx,args)}return this}})),require_float=__commonJSMin(((exports,module)=>{module.exports=factory(factory);function factory(exports$1){return typeof Float32Array<`u`?(function(){var f32=new Float32Array([-0]),f8b=new Uint8Array(f32.buffer),le=f8b[3]===128;function writeFloat_f32_cpy(val,buf,pos){f32[0]=val,buf[pos]=f8b[0],buf[pos+1]=f8b[1],buf[pos+2]=f8b[2],buf[pos+3]=f8b[3]}function writeFloat_f32_rev(val,buf,pos){f32[0]=val,buf[pos]=f8b[3],buf[pos+1]=f8b[2],buf[pos+2]=f8b[1],buf[pos+3]=f8b[0]}exports$1.writeFloatLE=le?writeFloat_f32_cpy:writeFloat_f32_rev,exports$1.writeFloatBE=le?writeFloat_f32_rev:writeFloat_f32_cpy;function readFloat_f32_cpy(buf,pos){return f8b[0]=buf[pos],f8b[1]=buf[pos+1],f8b[2]=buf[pos+2],f8b[3]=buf[pos+3],f32[0]}function readFloat_f32_rev(buf,pos){return f8b[3]=buf[pos],f8b[2]=buf[pos+1],f8b[1]=buf[pos+2],f8b[0]=buf[pos+3],f32[0]}exports$1.readFloatLE=le?readFloat_f32_cpy:readFloat_f32_rev,exports$1.readFloatBE=le?readFloat_f32_rev:readFloat_f32_cpy})():(function(){function writeFloat_ieee754(writeUint,val,buf,pos){var sign=val<0?1:0;if(sign&&(val=-val),val===0)writeUint(1/val>0?0:2147483648,buf,pos);else if(isNaN(val))writeUint(2143289344,buf,pos);else if(val>34028234663852886e22)writeUint((sign<<31|2139095040)>>>0,buf,pos);else if(val<11754943508222875e-54)writeUint((sign<<31|Math.round(val/1401298464324817e-60))>>>0,buf,pos);else{var exponent=Math.floor(Math.log(val)/Math.LN2),mantissa=Math.round(val*2**-exponent*8388608)&8388607;writeUint((sign<<31|exponent+127<<23|mantissa)>>>0,buf,pos)}}exports$1.writeFloatLE=writeFloat_ieee754.bind(null,writeUintLE),exports$1.writeFloatBE=writeFloat_ieee754.bind(null,writeUintBE);function readFloat_ieee754(readUint,buf,pos){var uint=readUint(buf,pos),sign=(uint>>31)*2+1,exponent=uint>>>23&255,mantissa=uint&8388607;return exponent===255?mantissa?NaN:sign*(1/0):exponent===0?sign*1401298464324817e-60*mantissa:sign*2**(exponent-150)*(mantissa+8388608)}exports$1.readFloatLE=readFloat_ieee754.bind(null,readUintLE),exports$1.readFloatBE=readFloat_ieee754.bind(null,readUintBE)})(),typeof Float64Array<`u`?(function(){var f64=new Float64Array([-0]),f8b=new Uint8Array(f64.buffer),le=f8b[7]===128;function writeDouble_f64_cpy(val,buf,pos){f64[0]=val,buf[pos]=f8b[0],buf[pos+1]=f8b[1],buf[pos+2]=f8b[2],buf[pos+3]=f8b[3],buf[pos+4]=f8b[4],buf[pos+5]=f8b[5],buf[pos+6]=f8b[6],buf[pos+7]=f8b[7]}function writeDouble_f64_rev(val,buf,pos){f64[0]=val,buf[pos]=f8b[7],buf[pos+1]=f8b[6],buf[pos+2]=f8b[5],buf[pos+3]=f8b[4],buf[pos+4]=f8b[3],buf[pos+5]=f8b[2],buf[pos+6]=f8b[1],buf[pos+7]=f8b[0]}exports$1.writeDoubleLE=le?writeDouble_f64_cpy:writeDouble_f64_rev,exports$1.writeDoubleBE=le?writeDouble_f64_rev:writeDouble_f64_cpy;function readDouble_f64_cpy(buf,pos){return f8b[0]=buf[pos],f8b[1]=buf[pos+1],f8b[2]=buf[pos+2],f8b[3]=buf[pos+3],f8b[4]=buf[pos+4],f8b[5]=buf[pos+5],f8b[6]=buf[pos+6],f8b[7]=buf[pos+7],f64[0]}function readDouble_f64_rev(buf,pos){return f8b[7]=buf[pos],f8b[6]=buf[pos+1],f8b[5]=buf[pos+2],f8b[4]=buf[pos+3],f8b[3]=buf[pos+4],f8b[2]=buf[pos+5],f8b[1]=buf[pos+6],f8b[0]=buf[pos+7],f64[0]}exports$1.readDoubleLE=le?readDouble_f64_cpy:readDouble_f64_rev,exports$1.readDoubleBE=le?readDouble_f64_rev:readDouble_f64_cpy})():(function(){function writeDouble_ieee754(writeUint,off0,off1,val,buf,pos){var sign=val<0?1:0;if(sign&&(val=-val),val===0)writeUint(0,buf,pos+off0),writeUint(1/val>0?0:2147483648,buf,pos+off1);else if(isNaN(val))writeUint(0,buf,pos+off0),writeUint(2146959360,buf,pos+off1);else if(val>17976931348623157e292)writeUint(0,buf,pos+off0),writeUint((sign<<31|2146435072)>>>0,buf,pos+off1);else{var mantissa;if(val<22250738585072014e-324)mantissa=val/5e-324,writeUint(mantissa>>>0,buf,pos+off0),writeUint((sign<<31|mantissa/4294967296)>>>0,buf,pos+off1);else{var exponent=Math.floor(Math.log(val)/Math.LN2);exponent===1024&&(exponent=1023),mantissa=val*2**-exponent,writeUint(mantissa*4503599627370496>>>0,buf,pos+off0),writeUint((sign<<31|exponent+1023<<20|mantissa*1048576&1048575)>>>0,buf,pos+off1)}}}exports$1.writeDoubleLE=writeDouble_ieee754.bind(null,writeUintLE,0,4),exports$1.writeDoubleBE=writeDouble_ieee754.bind(null,writeUintBE,4,0);function readDouble_ieee754(readUint,off0,off1,buf,pos){var lo=readUint(buf,pos+off0),hi=readUint(buf,pos+off1),sign=(hi>>31)*2+1,exponent=hi>>>20&2047,mantissa=4294967296*(hi&1048575)+lo;return exponent===2047?mantissa?NaN:sign*(1/0):exponent===0?sign*5e-324*mantissa:sign*2**(exponent-1075)*(mantissa+4503599627370496)}exports$1.readDoubleLE=readDouble_ieee754.bind(null,readUintLE,0,4),exports$1.readDoubleBE=readDouble_ieee754.bind(null,readUintBE,4,0)})(),exports$1}function writeUintLE(val,buf,pos){buf[pos]=val&255,buf[pos+1]=val>>>8&255,buf[pos+2]=val>>>16&255,buf[pos+3]=val>>>24}function writeUintBE(val,buf,pos){buf[pos]=val>>>24,buf[pos+1]=val>>>16&255,buf[pos+2]=val>>>8&255,buf[pos+3]=val&255}function readUintLE(buf,pos){return(buf[pos]|buf[pos+1]<<8|buf[pos+2]<<16|buf[pos+3]<<24)>>>0}function readUintBE(buf,pos){return(buf[pos]<<24|buf[pos+1]<<16|buf[pos+2]<<8|buf[pos+3])>>>0}})),require_inquire=__commonJSMin(((exports,module)=>{module.exports=inquire;function inquire(moduleName){try{var mod=eval(`quire`.replace(/^/,`re`))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch{}return null}})),require_utf8=__commonJSMin((exports=>{var utf8=exports;utf8.length=function(string){for(var len=0,c=0,i=0;i<string.length;++i)c=string.charCodeAt(i),c<128?len+=1:c<2048?len+=2:(c&64512)==55296&&(string.charCodeAt(i+1)&64512)==56320?(++i,len+=4):len+=3;return len},utf8.read=function(buffer,start,end){if(end-start<1)return``;for(var parts=null,chunk=[],i=0,t;start<end;)t=buffer[start++],t<128?chunk[i++]=t:t>191&&t<224?chunk[i++]=(t&31)<<6|buffer[start++]&63:t>239&&t<365?(t=((t&7)<<18|(buffer[start++]&63)<<12|(buffer[start++]&63)<<6|buffer[start++]&63)-65536,chunk[i++]=55296+(t>>10),chunk[i++]=56320+(t&1023)):chunk[i++]=(t&15)<<12|(buffer[start++]&63)<<6|buffer[start++]&63,i>8191&&((parts||=[]).push(String.fromCharCode.apply(String,chunk)),i=0);return parts?(i&&parts.push(String.fromCharCode.apply(String,chunk.slice(0,i))),parts.join(``)):String.fromCharCode.apply(String,chunk.slice(0,i))},utf8.write=function(string,buffer,offset){for(var start=offset,c1,c2,i=0;i<string.length;++i)c1=string.charCodeAt(i),c1<128?buffer[offset++]=c1:c1<2048?(buffer[offset++]=c1>>6|192,buffer[offset++]=c1&63|128):(c1&64512)==55296&&((c2=string.charCodeAt(i+1))&64512)==56320?(c1=65536+((c1&1023)<<10)+(c2&1023),++i,buffer[offset++]=c1>>18|240,buffer[offset++]=c1>>12&63|128,buffer[offset++]=c1>>6&63|128,buffer[offset++]=c1&63|128):(buffer[offset++]=c1>>12|224,buffer[offset++]=c1>>6&63|128,buffer[offset++]=c1&63|128);return offset-start}})),require_pool=__commonJSMin(((exports,module)=>{module.exports=pool;function pool(alloc,slice,size){var SIZE=size||8192,MAX=SIZE>>>1,slab=null,offset=SIZE;return function(size$1){if(size$1<1||size$1>MAX)return alloc(size$1);offset+size$1>SIZE&&(slab=alloc(SIZE),offset=0);var buf=slice.call(slab,offset,offset+=size$1);return offset&7&&(offset=(offset|7)+1),buf}}})),require_longbits=__commonJSMin(((exports,module)=>{module.exports=LongBits;var util=require_minimal$1();function LongBits(lo,hi){this.lo=lo>>>0,this.hi=hi>>>0}var zero=LongBits.zero=new LongBits(0,0);zero.toNumber=function(){return 0},zero.zzEncode=zero.zzDecode=function(){return this},zero.length=function(){return 1};var zeroHash=LongBits.zeroHash=`\0\0\0\0\0\0\0\0`;LongBits.fromNumber=function(value){if(value===0)return zero;var sign=value<0;sign&&(value=-value);var lo=value>>>0,hi=(value-lo)/4294967296>>>0;return sign&&(hi=~hi>>>0,lo=~lo>>>0,++lo>4294967295&&(lo=0,++hi>4294967295&&(hi=0))),new LongBits(lo,hi)},LongBits.from=function(value){if(typeof value==`number`)return LongBits.fromNumber(value);if(util.isString(value))if(util.Long)value=util.Long.fromString(value);else return LongBits.fromNumber(parseInt(value,10));return value.low||value.high?new LongBits(value.low>>>0,value.high>>>0):zero},LongBits.prototype.toNumber=function(unsigned){if(!unsigned&&this.hi>>>31){var lo=~this.lo+1>>>0,hi=~this.hi>>>0;return lo||(hi=hi+1>>>0),-(lo+hi*4294967296)}return this.lo+this.hi*4294967296},LongBits.prototype.toLong=function(unsigned){return util.Long?new util.Long(this.lo|0,this.hi|0,!!unsigned):{low:this.lo|0,high:this.hi|0,unsigned:!!unsigned}};var charCodeAt=String.prototype.charCodeAt;LongBits.fromHash=function(hash){return hash===zeroHash?zero:new LongBits((charCodeAt.call(hash,0)|charCodeAt.call(hash,1)<<8|charCodeAt.call(hash,2)<<16|charCodeAt.call(hash,3)<<24)>>>0,(charCodeAt.call(hash,4)|charCodeAt.call(hash,5)<<8|charCodeAt.call(hash,6)<<16|charCodeAt.call(hash,7)<<24)>>>0)},LongBits.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},LongBits.prototype.zzEncode=function(){var mask=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^mask)>>>0,this.lo=(this.lo<<1^mask)>>>0,this},LongBits.prototype.zzDecode=function(){var mask=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^mask)>>>0,this.hi=(this.hi>>>1^mask)>>>0,this},LongBits.prototype.length=function(){var part0=this.lo,part1=(this.lo>>>28|this.hi<<4)>>>0,part2=this.hi>>>24;return part2===0?part1===0?part0<16384?part0<128?1:2:part0<2097152?3:4:part1<16384?part1<128?5:6:part1<2097152?7:8:part2<128?9:10}})),require_minimal$1=__commonJSMin((exports=>{var util=exports;util.asPromise=require_aspromise(),util.base64=require_base64(),util.EventEmitter=require_eventemitter(),util.float=require_float(),util.inquire=require_inquire(),util.utf8=require_utf8(),util.pool=require_pool(),util.LongBits=require_longbits(),util.isNode=!!(typeof global<`u`&&global&&global.process&&global.process.versions&&global.process.versions.node),util.global=util.isNode&&global||typeof window<`u`&&window||typeof self<`u`&&self||exports,util.emptyArray=Object.freeze?Object.freeze([]):[],util.emptyObject=Object.freeze?Object.freeze({}):{},util.isInteger=Number.isInteger||function(value){return typeof value==`number`&&isFinite(value)&&Math.floor(value)===value},util.isString=function(value){return typeof value==`string`||value instanceof String},util.isObject=function(value){return value&&typeof value==`object`},util.isset=util.isSet=function(obj,prop){var value=obj[prop];return value!=null&&obj.hasOwnProperty(prop)?typeof value!=`object`||(Array.isArray(value)?value.length:Object.keys(value).length)>0:!1},util.Buffer=(function(){try{var Buffer$1=util.inquire(`buffer`).Buffer;return Buffer$1.prototype.utf8Write?Buffer$1:null}catch{return null}})(),util._Buffer_from=null,util._Buffer_allocUnsafe=null,util.newBuffer=function(sizeOrArray){return typeof sizeOrArray==`number`?util.Buffer?util._Buffer_allocUnsafe(sizeOrArray):new util.Array(sizeOrArray):util.Buffer?util._Buffer_from(sizeOrArray):typeof Uint8Array>`u`?sizeOrArray:new Uint8Array(sizeOrArray)},util.Array=typeof Uint8Array<`u`?Uint8Array:Array,util.Long=util.global.dcodeIO&&util.global.dcodeIO.Long||util.global.Long||util.inquire(`long`),util.key2Re=/^true|false|0|1$/,util.key32Re=/^-?(?:0|[1-9][0-9]*)$/,util.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,util.longToHash=function(value){return value?util.LongBits.from(value).toHash():util.LongBits.zeroHash},util.longFromHash=function(hash,unsigned){var bits=util.LongBits.fromHash(hash);return util.Long?util.Long.fromBits(bits.lo,bits.hi,unsigned):bits.toNumber(!!unsigned)};function merge(dst,src,ifNotSet){for(var keys=Object.keys(src),i=0;i<keys.length;++i)(dst[keys[i]]===void 0||!ifNotSet)&&(dst[keys[i]]=src[keys[i]]);return dst}util.merge=merge,util.lcFirst=function(str){return str.charAt(0).toLowerCase()+str.substring(1)};function newError(name){function CustomError(message,properties){if(!(this instanceof CustomError))return new CustomError(message,properties);Object.defineProperty(this,`message`,{get:function(){return message}}),Error.captureStackTrace?Error.captureStackTrace(this,CustomError):Object.defineProperty(this,`stack`,{value:Error().stack||``}),properties&&merge(this,properties)}return CustomError.prototype=Object.create(Error.prototype,{constructor:{value:CustomError,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return name},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+`: `+this.message},writable:!0,enumerable:!1,configurable:!0}}),CustomError}util.newError=newError,util.ProtocolError=newError(`ProtocolError`),util.oneOfGetter=function(fieldNames){for(var fieldMap={},i=0;i<fieldNames.length;++i)fieldMap[fieldNames[i]]=1;return function(){for(var keys=Object.keys(this),i$1=keys.length-1;i$1>-1;--i$1)if(fieldMap[keys[i$1]]===1&&this[keys[i$1]]!==void 0&&this[keys[i$1]]!==null)return keys[i$1]}},util.oneOfSetter=function(fieldNames){return function(name){for(var i=0;i<fieldNames.length;++i)fieldNames[i]!==name&&delete this[fieldNames[i]]}},util.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},util._configure=function(){var Buffer$1=util.Buffer;if(!Buffer$1){util._Buffer_from=util._Buffer_allocUnsafe=null;return}util._Buffer_from=Buffer$1.from!==Uint8Array.from&&Buffer$1.from||function(value,encoding){return new Buffer$1(value,encoding)},util._Buffer_allocUnsafe=Buffer$1.allocUnsafe||function(size){return new Buffer$1(size)}}})),require_writer=__commonJSMin(((exports,module)=>{module.exports=Writer;var util=require_minimal$1(),BufferWriter,LongBits=util.LongBits,base64=util.base64,utf8=util.utf8;function Op(fn,len,val){this.fn=fn,this.len=len,this.next=void 0,this.val=val}function noop(){}function State(writer){this.head=writer.head,this.tail=writer.tail,this.len=writer.len,this.next=writer.states}function Writer(){this.len=0,this.head=new Op(noop,0,0),this.tail=this.head,this.states=null}var create=function(){return util.Buffer?function(){return(Writer.create=function(){return new BufferWriter})()}:function(){return new Writer}};Writer.create=create(),Writer.alloc=function(size){return new util.Array(size)},util.Array!==Array&&(Writer.alloc=util.pool(Writer.alloc,util.Array.prototype.subarray)),Writer.prototype._push=function(fn,len,val){return this.tail=this.tail.next=new Op(fn,len,val),this.len+=len,this};function writeByte(val,buf,pos){buf[pos]=val&255}function writeVarint32(val,buf,pos){for(;val>127;)buf[pos++]=val&127|128,val>>>=7;buf[pos]=val}function VarintOp(len,val){this.len=len,this.next=void 0,this.val=val}VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer.prototype.uint32=function(value){return this.len+=(this.tail=this.tail.next=new VarintOp((value>>>=0)<128?1:value<16384?2:value<2097152?3:value<268435456?4:5,value)).len,this},Writer.prototype.int32=function(value){return value<0?this._push(writeVarint64,10,LongBits.fromNumber(value)):this.uint32(value)},Writer.prototype.sint32=function(value){return this.uint32((value<<1^value>>31)>>>0)};function writeVarint64(val,buf,pos){for(;val.hi;)buf[pos++]=val.lo&127|128,val.lo=(val.lo>>>7|val.hi<<25)>>>0,val.hi>>>=7;for(;val.lo>127;)buf[pos++]=val.lo&127|128,val.lo>>>=7;buf[pos++]=val.lo}Writer.prototype.uint64=function(value){var bits=LongBits.from(value);return this._push(writeVarint64,bits.length(),bits)},Writer.prototype.int64=Writer.prototype.uint64,Writer.prototype.sint64=function(value){var bits=LongBits.from(value).zzEncode();return this._push(writeVarint64,bits.length(),bits)},Writer.prototype.bool=function(value){return this._push(writeByte,1,value?1:0)};function writeFixed32(val,buf,pos){buf[pos]=val&255,buf[pos+1]=val>>>8&255,buf[pos+2]=val>>>16&255,buf[pos+3]=val>>>24}Writer.prototype.fixed32=function(value){return this._push(writeFixed32,4,value>>>0)},Writer.prototype.sfixed32=Writer.prototype.fixed32,Writer.prototype.fixed64=function(value){var bits=LongBits.from(value);return this._push(writeFixed32,4,bits.lo)._push(writeFixed32,4,bits.hi)},Writer.prototype.sfixed64=Writer.prototype.fixed64,Writer.prototype.float=function(value){return this._push(util.float.writeFloatLE,4,value)},Writer.prototype.double=function(value){return this._push(util.float.writeDoubleLE,8,value)};var writeBytes=util.Array.prototype.set?function(val,buf,pos){buf.set(val,pos)}:function(val,buf,pos){for(var i=0;i<val.length;++i)buf[pos+i]=val[i]};Writer.prototype.bytes=function(value){var len=value.length>>>0;if(!len)return this._push(writeByte,1,0);if(util.isString(value)){var buf=Writer.alloc(len=base64.length(value));base64.decode(value,buf,0),value=buf}return this.uint32(len)._push(writeBytes,len,value)},Writer.prototype.string=function(value){var len=utf8.length(value);return len?this.uint32(len)._push(utf8.write,len,value):this._push(writeByte,1,0)},Writer.prototype.fork=function(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this},Writer.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this},Writer.prototype.ldelim=function(){var head=this.head,tail=this.tail,len=this.len;return this.reset().uint32(len),len&&(this.tail.next=head.next,this.tail=tail,this.len+=len),this},Writer.prototype.finish=function(){for(var head=this.head.next,buf=this.constructor.alloc(this.len),pos=0;head;)head.fn(head.val,buf,pos),pos+=head.len,head=head.next;return buf},Writer._configure=function(BufferWriter_){BufferWriter=BufferWriter_,Writer.create=create(),BufferWriter._configure()}})),require_writer_buffer=__commonJSMin(((exports,module)=>{module.exports=BufferWriter;var Writer=require_writer();(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util=require_minimal$1();function BufferWriter(){Writer.call(this)}BufferWriter._configure=function(){BufferWriter.alloc=util._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util.Buffer&&util.Buffer.prototype instanceof Uint8Array&&util.Buffer.prototype.set.name===`set`?function(val,buf,pos){buf.set(val,pos)}:function(val,buf,pos){if(val.copy)val.copy(buf,pos,0,val.length);else for(var i=0;i<val.length;)buf[pos++]=val[i++]}},BufferWriter.prototype.bytes=function(value){util.isString(value)&&(value=util._Buffer_from(value,`base64`));var len=value.length>>>0;return this.uint32(len),len&&this._push(BufferWriter.writeBytesBuffer,len,value),this};function writeStringBuffer(val,buf,pos){val.length<40?util.utf8.write(val,buf,pos):buf.utf8Write?buf.utf8Write(val,pos):buf.write(val,pos)}BufferWriter.prototype.string=function(value){var len=util.Buffer.byteLength(value);return this.uint32(len),len&&this._push(writeStringBuffer,len,value),this},BufferWriter._configure()})),require_reader=__commonJSMin(((exports,module)=>{module.exports=Reader;var util=require_minimal$1(),BufferReader,LongBits=util.LongBits,utf8=util.utf8;function indexOutOfRange(reader,writeLength){return RangeError(`index out of range: `+reader.pos+` + `+(writeLength||1)+` > `+reader.len)}function Reader(buffer){this.buf=buffer,this.pos=0,this.len=buffer.length}var create_array=typeof Uint8Array<`u`?function(buffer){if(buffer instanceof Uint8Array||Array.isArray(buffer))return new Reader(buffer);throw Error(`illegal buffer`)}:function(buffer){if(Array.isArray(buffer))return new Reader(buffer);throw Error(`illegal buffer`)},create=function(){return util.Buffer?function(buffer){return(Reader.create=function(buffer$1){return util.Buffer.isBuffer(buffer$1)?new BufferReader(buffer$1):create_array(buffer$1)})(buffer)}:create_array};Reader.create=create(),Reader.prototype._slice=util.Array.prototype.subarray||util.Array.prototype.slice,Reader.prototype.uint32=(function(){var value=4294967295;return function(){if(value=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(value=(value|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(value=(value|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(value=(value|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(value=(value|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return value;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return value}})(),Reader.prototype.int32=function(){return this.uint32()|0},Reader.prototype.sint32=function(){var value=this.uint32();return value>>>1^-(value&1)|0};function readLongVarint(){var bits=new LongBits(0,0),i=0;if(this.len-this.pos>4){for(;i<4;++i)if(bits.lo=(bits.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return bits;if(bits.lo=(bits.lo|(this.buf[this.pos]&127)<<28)>>>0,bits.hi=(bits.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return bits;i=0}else{for(;i<3;++i){if(this.pos>=this.len)throw indexOutOfRange(this);if(bits.lo=(bits.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return bits}return bits.lo=(bits.lo|(this.buf[this.pos++]&127)<<i*7)>>>0,bits}if(this.len-this.pos>4){for(;i<5;++i)if(bits.hi=(bits.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return bits}else for(;i<5;++i){if(this.pos>=this.len)throw indexOutOfRange(this);if(bits.hi=(bits.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return bits}throw Error(`invalid varint encoding`)}Reader.prototype.bool=function(){return this.uint32()!==0};function readFixed32_end(buf,end){return(buf[end-4]|buf[end-3]<<8|buf[end-2]<<16|buf[end-1]<<24)>>>0}Reader.prototype.fixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader.prototype.sfixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)|0};function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader.prototype.float=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var value=util.float.readFloatLE(this.buf,this.pos);return this.pos+=4,value},Reader.prototype.double=function(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var value=util.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,value},Reader.prototype.bytes=function(){var length=this.uint32(),start=this.pos,end=this.pos+length;if(end>this.len)throw indexOutOfRange(this,length);if(this.pos+=length,Array.isArray(this.buf))return this.buf.slice(start,end);if(start===end){var nativeBuffer=util.Buffer;return nativeBuffer?nativeBuffer.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,start,end)},Reader.prototype.string=function(){var bytes=this.bytes();return utf8.read(bytes,0,bytes.length)},Reader.prototype.skip=function(length){if(typeof length==`number`){if(this.pos+length>this.len)throw indexOutOfRange(this,length);this.pos+=length}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(this.buf[this.pos++]&128);return this},Reader.prototype.skipType=function(wireType){switch(wireType){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(wireType=this.uint32()&7)!=4;)this.skipType(wireType);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type `+wireType+` at offset `+this.pos)}return this},Reader._configure=function(BufferReader_){BufferReader=BufferReader_,Reader.create=create(),BufferReader._configure();var fn=util.Long?`toLong`:`toNumber`;util.merge(Reader.prototype,{int64:function(){return readLongVarint.call(this)[fn](!1)},uint64:function(){return readLongVarint.call(this)[fn](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[fn](!1)},fixed64:function(){return readFixed64.call(this)[fn](!0)},sfixed64:function(){return readFixed64.call(this)[fn](!1)}})}})),require_reader_buffer=__commonJSMin(((exports,module)=>{module.exports=BufferReader;var Reader=require_reader();(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util=require_minimal$1();function BufferReader(buffer){Reader.call(this,buffer)}BufferReader._configure=function(){util.Buffer&&(BufferReader.prototype._slice=util.Buffer.prototype.slice)},BufferReader.prototype.string=function(){var len=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+len,this.len)):this.buf.toString(`utf-8`,this.pos,this.pos=Math.min(this.pos+len,this.len))},BufferReader._configure()})),require_service=__commonJSMin(((exports,module)=>{module.exports=Service;var util=require_minimal$1();(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service;function Service(rpcImpl,requestDelimited,responseDelimited){if(typeof rpcImpl!=`function`)throw TypeError(`rpcImpl must be a function`);util.EventEmitter.call(this),this.rpcImpl=rpcImpl,this.requestDelimited=!!requestDelimited,this.responseDelimited=!!responseDelimited}Service.prototype.rpcCall=function rpcCall(method,requestCtor,responseCtor,request,callback){if(!request)throw TypeError(`request must be specified`);var self$1=this;if(!callback)return util.asPromise(rpcCall,self$1,method,requestCtor,responseCtor,request);if(!self$1.rpcImpl){setTimeout(function(){callback(Error(`already ended`))},0);return}try{return self$1.rpcImpl(method,requestCtor[self$1.requestDelimited?`encodeDelimited`:`encode`](request).finish(),function(err,response){if(err)return self$1.emit(`error`,err,method),callback(err);if(response===null){self$1.end(!0);return}if(!(response instanceof responseCtor))try{response=responseCtor[self$1.responseDelimited?`decodeDelimited`:`decode`](response)}catch(err$1){return self$1.emit(`error`,err$1,method),callback(err$1)}return self$1.emit(`data`,response,method),callback(null,response)})}catch(err){self$1.emit(`error`,err,method),setTimeout(function(){callback(err)},0);return}},Service.prototype.end=function(endedByRPC){return this.rpcImpl&&(endedByRPC||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit(`end`).off()),this}})),require_rpc=__commonJSMin((exports=>{var rpc=exports;rpc.Service=require_service()})),require_roots=__commonJSMin(((exports,module)=>{module.exports={}})),require_index_minimal=__commonJSMin((exports=>{var protobuf=exports;protobuf.build=`minimal`,protobuf.Writer=require_writer(),protobuf.BufferWriter=require_writer_buffer(),protobuf.Reader=require_reader(),protobuf.BufferReader=require_reader_buffer(),protobuf.util=require_minimal$1(),protobuf.rpc=require_rpc(),protobuf.roots=require_roots(),protobuf.configure=configure;function configure(){protobuf.util._configure(),protobuf.Writer._configure(protobuf.BufferWriter),protobuf.Reader._configure(protobuf.BufferReader)}configure()})),require_minimal=__commonJSMin(((exports,module)=>{module.exports=require_index_minimal()})),require_root=__commonJSMin(((exports,module)=>{Object.defineProperty(exports,`__esModule`,{value:!0});var $protobuf=require_minimal(),$Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util,$root=$protobuf.roots.default||($protobuf.roots.default={});$root.opentelemetry=(function(){var opentelemetry={};return opentelemetry.proto=(function(){var proto={};return proto.common=(function(){var common={};return common.v1=(function(){var v1={};return v1.AnyValue=(function(){function AnyValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}AnyValue.prototype.stringValue=null,AnyValue.prototype.boolValue=null,AnyValue.prototype.intValue=null,AnyValue.prototype.doubleValue=null,AnyValue.prototype.arrayValue=null,AnyValue.prototype.kvlistValue=null,AnyValue.prototype.bytesValue=null;var $oneOfFields;return Object.defineProperty(AnyValue.prototype,`value`,{get:$util.oneOfGetter($oneOfFields=[`stringValue`,`boolValue`,`intValue`,`doubleValue`,`arrayValue`,`kvlistValue`,`bytesValue`]),set:$util.oneOfSetter($oneOfFields)}),AnyValue.create=function(properties){return new AnyValue(properties)},AnyValue.encode=function(message,writer){return writer||=$Writer.create(),message.stringValue!=null&&Object.hasOwnProperty.call(message,`stringValue`)&&writer.uint32(10).string(message.stringValue),message.boolValue!=null&&Object.hasOwnProperty.call(message,`boolValue`)&&writer.uint32(16).bool(message.boolValue),message.intValue!=null&&Object.hasOwnProperty.call(message,`intValue`)&&writer.uint32(24).int64(message.intValue),message.doubleValue!=null&&Object.hasOwnProperty.call(message,`doubleValue`)&&writer.uint32(33).double(message.doubleValue),message.arrayValue!=null&&Object.hasOwnProperty.call(message,`arrayValue`)&&$root.opentelemetry.proto.common.v1.ArrayValue.encode(message.arrayValue,writer.uint32(42).fork()).ldelim(),message.kvlistValue!=null&&Object.hasOwnProperty.call(message,`kvlistValue`)&&$root.opentelemetry.proto.common.v1.KeyValueList.encode(message.kvlistValue,writer.uint32(50).fork()).ldelim(),message.bytesValue!=null&&Object.hasOwnProperty.call(message,`bytesValue`)&&writer.uint32(58).bytes(message.bytesValue),writer},AnyValue.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},AnyValue.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.AnyValue;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.stringValue=reader.string();break;case 2:message.boolValue=reader.bool();break;case 3:message.intValue=reader.int64();break;case 4:message.doubleValue=reader.double();break;case 5:message.arrayValue=$root.opentelemetry.proto.common.v1.ArrayValue.decode(reader,reader.uint32());break;case 6:message.kvlistValue=$root.opentelemetry.proto.common.v1.KeyValueList.decode(reader,reader.uint32());break;case 7:message.bytesValue=reader.bytes();break;default:reader.skipType(tag&7);break}}return message},AnyValue.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},AnyValue.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.stringValue!=null&&message.hasOwnProperty(`stringValue`)&&(properties.value=1,!$util.isString(message.stringValue)))return`stringValue: string expected`;if(message.boolValue!=null&&message.hasOwnProperty(`boolValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,typeof message.boolValue!=`boolean`)return`boolValue: boolean expected`}if(message.intValue!=null&&message.hasOwnProperty(`intValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!$util.isInteger(message.intValue)&&!(message.intValue&&$util.isInteger(message.intValue.low)&&$util.isInteger(message.intValue.high)))return`intValue: integer|Long expected`}if(message.doubleValue!=null&&message.hasOwnProperty(`doubleValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,typeof message.doubleValue!=`number`)return`doubleValue: number expected`}if(message.arrayValue!=null&&message.hasOwnProperty(`arrayValue`)){if(properties.value===1)return`value: multiple values`;properties.value=1;var error=$root.opentelemetry.proto.common.v1.ArrayValue.verify(message.arrayValue);if(error)return`arrayValue.`+error}if(message.kvlistValue!=null&&message.hasOwnProperty(`kvlistValue`)){if(properties.value===1)return`value: multiple values`;properties.value=1;var error=$root.opentelemetry.proto.common.v1.KeyValueList.verify(message.kvlistValue);if(error)return`kvlistValue.`+error}if(message.bytesValue!=null&&message.hasOwnProperty(`bytesValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!(message.bytesValue&&typeof message.bytesValue.length==`number`||$util.isString(message.bytesValue)))return`bytesValue: buffer expected`}return null},AnyValue.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.AnyValue)return object;var message=new $root.opentelemetry.proto.common.v1.AnyValue;if(object.stringValue!=null&&(message.stringValue=String(object.stringValue)),object.boolValue!=null&&(message.boolValue=!!object.boolValue),object.intValue!=null&&($util.Long?(message.intValue=$util.Long.fromValue(object.intValue)).unsigned=!1:typeof object.intValue==`string`?message.intValue=parseInt(object.intValue,10):typeof object.intValue==`number`?message.intValue=object.intValue:typeof object.intValue==`object`&&(message.intValue=new $util.LongBits(object.intValue.low>>>0,object.intValue.high>>>0).toNumber())),object.doubleValue!=null&&(message.doubleValue=Number(object.doubleValue)),object.arrayValue!=null){if(typeof object.arrayValue!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.AnyValue.arrayValue: object expected`);message.arrayValue=$root.opentelemetry.proto.common.v1.ArrayValue.fromObject(object.arrayValue)}if(object.kvlistValue!=null){if(typeof object.kvlistValue!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.AnyValue.kvlistValue: object expected`);message.kvlistValue=$root.opentelemetry.proto.common.v1.KeyValueList.fromObject(object.kvlistValue)}return object.bytesValue!=null&&(typeof object.bytesValue==`string`?$util.base64.decode(object.bytesValue,message.bytesValue=$util.newBuffer($util.base64.length(object.bytesValue)),0):object.bytesValue.length>=0&&(message.bytesValue=object.bytesValue)),message},AnyValue.toObject=function(message,options){options||={};var object={};return message.stringValue!=null&&message.hasOwnProperty(`stringValue`)&&(object.stringValue=message.stringValue,options.oneofs&&(object.value=`stringValue`)),message.boolValue!=null&&message.hasOwnProperty(`boolValue`)&&(object.boolValue=message.boolValue,options.oneofs&&(object.value=`boolValue`)),message.intValue!=null&&message.hasOwnProperty(`intValue`)&&(typeof message.intValue==`number`?object.intValue=options.longs===String?String(message.intValue):message.intValue:object.intValue=options.longs===String?$util.Long.prototype.toString.call(message.intValue):options.longs===Number?new $util.LongBits(message.intValue.low>>>0,message.intValue.high>>>0).toNumber():message.intValue,options.oneofs&&(object.value=`intValue`)),message.doubleValue!=null&&message.hasOwnProperty(`doubleValue`)&&(object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue,options.oneofs&&(object.value=`doubleValue`)),message.arrayValue!=null&&message.hasOwnProperty(`arrayValue`)&&(object.arrayValue=$root.opentelemetry.proto.common.v1.ArrayValue.toObject(message.arrayValue,options),options.oneofs&&(object.value=`arrayValue`)),message.kvlistValue!=null&&message.hasOwnProperty(`kvlistValue`)&&(object.kvlistValue=$root.opentelemetry.proto.common.v1.KeyValueList.toObject(message.kvlistValue,options),options.oneofs&&(object.value=`kvlistValue`)),message.bytesValue!=null&&message.hasOwnProperty(`bytesValue`)&&(object.bytesValue=options.bytes===String?$util.base64.encode(message.bytesValue,0,message.bytesValue.length):options.bytes===Array?Array.prototype.slice.call(message.bytesValue):message.bytesValue,options.oneofs&&(object.value=`bytesValue`)),object},AnyValue.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},AnyValue.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.AnyValue`},AnyValue})(),v1.ArrayValue=(function(){function ArrayValue(properties){if(this.values=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ArrayValue.prototype.values=$util.emptyArray,ArrayValue.create=function(properties){return new ArrayValue(properties)},ArrayValue.encode=function(message,writer){if(writer||=$Writer.create(),message.values!=null&&message.values.length)for(var i=0;i<message.values.length;++i)$root.opentelemetry.proto.common.v1.AnyValue.encode(message.values[i],writer.uint32(10).fork()).ldelim();return writer},ArrayValue.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ArrayValue.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.ArrayValue;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.values&&message.values.length||(message.values=[]),message.values.push($root.opentelemetry.proto.common.v1.AnyValue.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ArrayValue.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ArrayValue.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.values!=null&&message.hasOwnProperty(`values`)){if(!Array.isArray(message.values))return`values: array expected`;for(var i=0;i<message.values.length;++i){var error=$root.opentelemetry.proto.common.v1.AnyValue.verify(message.values[i]);if(error)return`values.`+error}}return null},ArrayValue.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.ArrayValue)return object;var message=new $root.opentelemetry.proto.common.v1.ArrayValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(`.opentelemetry.proto.common.v1.ArrayValue.values: array expected`);message.values=[];for(var i=0;i<object.values.length;++i){if(typeof object.values[i]!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.ArrayValue.values: object expected`);message.values[i]=$root.opentelemetry.proto.common.v1.AnyValue.fromObject(object.values[i])}}return message},ArrayValue.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.values=[]),message.values&&message.values.length){object.values=[];for(var j=0;j<message.values.length;++j)object.values[j]=$root.opentelemetry.proto.common.v1.AnyValue.toObject(message.values[j],options)}return object},ArrayValue.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ArrayValue.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.ArrayValue`},ArrayValue})(),v1.KeyValueList=(function(){function KeyValueList(properties){if(this.values=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return KeyValueList.prototype.values=$util.emptyArray,KeyValueList.create=function(properties){return new KeyValueList(properties)},KeyValueList.encode=function(message,writer){if(writer||=$Writer.create(),message.values!=null&&message.values.length)for(var i=0;i<message.values.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.values[i],writer.uint32(10).fork()).ldelim();return writer},KeyValueList.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},KeyValueList.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.KeyValueList;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.values&&message.values.length||(message.values=[]),message.values.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},KeyValueList.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},KeyValueList.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.values!=null&&message.hasOwnProperty(`values`)){if(!Array.isArray(message.values))return`values: array expected`;for(var i=0;i<message.values.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.values[i]);if(error)return`values.`+error}}return null},KeyValueList.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.KeyValueList)return object;var message=new $root.opentelemetry.proto.common.v1.KeyValueList;if(object.values){if(!Array.isArray(object.values))throw TypeError(`.opentelemetry.proto.common.v1.KeyValueList.values: array expected`);message.values=[];for(var i=0;i<object.values.length;++i){if(typeof object.values[i]!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.KeyValueList.values: object expected`);message.values[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.values[i])}}return message},KeyValueList.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.values=[]),message.values&&message.values.length){object.values=[];for(var j=0;j<message.values.length;++j)object.values[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.values[j],options)}return object},KeyValueList.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},KeyValueList.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.KeyValueList`},KeyValueList})(),v1.KeyValue=(function(){function KeyValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return KeyValue.prototype.key=null,KeyValue.prototype.value=null,KeyValue.create=function(properties){return new KeyValue(properties)},KeyValue.encode=function(message,writer){return writer||=$Writer.create(),message.key!=null&&Object.hasOwnProperty.call(message,`key`)&&writer.uint32(10).string(message.key),message.value!=null&&Object.hasOwnProperty.call(message,`value`)&&$root.opentelemetry.proto.common.v1.AnyValue.encode(message.value,writer.uint32(18).fork()).ldelim(),writer},KeyValue.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},KeyValue.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.KeyValue;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.key=reader.string();break;case 2:message.value=$root.opentelemetry.proto.common.v1.AnyValue.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},KeyValue.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},KeyValue.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.key!=null&&message.hasOwnProperty(`key`)&&!$util.isString(message.key))return`key: string expected`;if(message.value!=null&&message.hasOwnProperty(`value`)){var error=$root.opentelemetry.proto.common.v1.AnyValue.verify(message.value);if(error)return`value.`+error}return null},KeyValue.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.KeyValue)return object;var message=new $root.opentelemetry.proto.common.v1.KeyValue;if(object.key!=null&&(message.key=String(object.key)),object.value!=null){if(typeof object.value!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.KeyValue.value: object expected`);message.value=$root.opentelemetry.proto.common.v1.AnyValue.fromObject(object.value)}return message},KeyValue.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.key=``,object.value=null),message.key!=null&&message.hasOwnProperty(`key`)&&(object.key=message.key),message.value!=null&&message.hasOwnProperty(`value`)&&(object.value=$root.opentelemetry.proto.common.v1.AnyValue.toObject(message.value,options)),object},KeyValue.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},KeyValue.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.KeyValue`},KeyValue})(),v1.InstrumentationScope=(function(){function InstrumentationScope(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return InstrumentationScope.prototype.name=null,InstrumentationScope.prototype.version=null,InstrumentationScope.prototype.attributes=$util.emptyArray,InstrumentationScope.prototype.droppedAttributesCount=null,InstrumentationScope.create=function(properties){return new InstrumentationScope(properties)},InstrumentationScope.encode=function(message,writer){if(writer||=$Writer.create(),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(10).string(message.name),message.version!=null&&Object.hasOwnProperty.call(message,`version`)&&writer.uint32(18).string(message.version),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(26).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(32).uint32(message.droppedAttributesCount),writer},InstrumentationScope.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},InstrumentationScope.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.InstrumentationScope;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.name=reader.string();break;case 2:message.version=reader.string();break;case 3:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 4:message.droppedAttributesCount=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},InstrumentationScope.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},InstrumentationScope.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.version!=null&&message.hasOwnProperty(`version`)&&!$util.isString(message.version))return`version: string expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:null},InstrumentationScope.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.InstrumentationScope)return object;var message=new $root.opentelemetry.proto.common.v1.InstrumentationScope;if(object.name!=null&&(message.name=String(object.name)),object.version!=null&&(message.version=String(object.version)),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.common.v1.InstrumentationScope.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.InstrumentationScope.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),message},InstrumentationScope.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults&&(object.name=``,object.version=``,object.droppedAttributesCount=0),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.version!=null&&message.hasOwnProperty(`version`)&&(object.version=message.version),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),object},InstrumentationScope.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},InstrumentationScope.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.InstrumentationScope`},InstrumentationScope})(),v1.EntityRef=(function(){function EntityRef(properties){if(this.idKeys=[],this.descriptionKeys=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return EntityRef.prototype.schemaUrl=null,EntityRef.prototype.type=null,EntityRef.prototype.idKeys=$util.emptyArray,EntityRef.prototype.descriptionKeys=$util.emptyArray,EntityRef.create=function(properties){return new EntityRef(properties)},EntityRef.encode=function(message,writer){if(writer||=$Writer.create(),message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(10).string(message.schemaUrl),message.type!=null&&Object.hasOwnProperty.call(message,`type`)&&writer.uint32(18).string(message.type),message.idKeys!=null&&message.idKeys.length)for(var i=0;i<message.idKeys.length;++i)writer.uint32(26).string(message.idKeys[i]);if(message.descriptionKeys!=null&&message.descriptionKeys.length)for(var i=0;i<message.descriptionKeys.length;++i)writer.uint32(34).string(message.descriptionKeys[i]);return writer},EntityRef.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},EntityRef.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.EntityRef;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.schemaUrl=reader.string();break;case 2:message.type=reader.string();break;case 3:message.idKeys&&message.idKeys.length||(message.idKeys=[]),message.idKeys.push(reader.string());break;case 4:message.descriptionKeys&&message.descriptionKeys.length||(message.descriptionKeys=[]),message.descriptionKeys.push(reader.string());break;default:reader.skipType(tag&7);break}}return message},EntityRef.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},EntityRef.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl))return`schemaUrl: string expected`;if(message.type!=null&&message.hasOwnProperty(`type`)&&!$util.isString(message.type))return`type: string expected`;if(message.idKeys!=null&&message.hasOwnProperty(`idKeys`)){if(!Array.isArray(message.idKeys))return`idKeys: array expected`;for(var i=0;i<message.idKeys.length;++i)if(!$util.isString(message.idKeys[i]))return`idKeys: string[] expected`}if(message.descriptionKeys!=null&&message.hasOwnProperty(`descriptionKeys`)){if(!Array.isArray(message.descriptionKeys))return`descriptionKeys: array expected`;for(var i=0;i<message.descriptionKeys.length;++i)if(!$util.isString(message.descriptionKeys[i]))return`descriptionKeys: string[] expected`}return null},EntityRef.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.EntityRef)return object;var message=new $root.opentelemetry.proto.common.v1.EntityRef;if(object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),object.type!=null&&(message.type=String(object.type)),object.idKeys){if(!Array.isArray(object.idKeys))throw TypeError(`.opentelemetry.proto.common.v1.EntityRef.idKeys: array expected`);message.idKeys=[];for(var i=0;i<object.idKeys.length;++i)message.idKeys[i]=String(object.idKeys[i])}if(object.descriptionKeys){if(!Array.isArray(object.descriptionKeys))throw TypeError(`.opentelemetry.proto.common.v1.EntityRef.descriptionKeys: array expected`);message.descriptionKeys=[];for(var i=0;i<object.descriptionKeys.length;++i)message.descriptionKeys[i]=String(object.descriptionKeys[i])}return message},EntityRef.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.idKeys=[],object.descriptionKeys=[]),options.defaults&&(object.schemaUrl=``,object.type=``),message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),message.type!=null&&message.hasOwnProperty(`type`)&&(object.type=message.type),message.idKeys&&message.idKeys.length){object.idKeys=[];for(var j=0;j<message.idKeys.length;++j)object.idKeys[j]=message.idKeys[j]}if(message.descriptionKeys&&message.descriptionKeys.length){object.descriptionKeys=[];for(var j=0;j<message.descriptionKeys.length;++j)object.descriptionKeys[j]=message.descriptionKeys[j]}return object},EntityRef.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},EntityRef.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.EntityRef`},EntityRef})(),v1})(),common})(),proto.resource=(function(){var resource={};return resource.v1=(function(){var v1={};return v1.Resource=(function(){function Resource(properties){if(this.attributes=[],this.entityRefs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Resource.prototype.attributes=$util.emptyArray,Resource.prototype.droppedAttributesCount=null,Resource.prototype.entityRefs=$util.emptyArray,Resource.create=function(properties){return new Resource(properties)},Resource.encode=function(message,writer){if(writer||=$Writer.create(),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(10).fork()).ldelim();if(message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(16).uint32(message.droppedAttributesCount),message.entityRefs!=null&&message.entityRefs.length)for(var i=0;i<message.entityRefs.length;++i)$root.opentelemetry.proto.common.v1.EntityRef.encode(message.entityRefs[i],writer.uint32(26).fork()).ldelim();return writer},Resource.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Resource.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.resource.v1.Resource;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.droppedAttributesCount=reader.uint32();break;case 3:message.entityRefs&&message.entityRefs.length||(message.entityRefs=[]),message.entityRefs.push($root.opentelemetry.proto.common.v1.EntityRef.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Resource.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Resource.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount))return`droppedAttributesCount: integer expected`;if(message.entityRefs!=null&&message.hasOwnProperty(`entityRefs`)){if(!Array.isArray(message.entityRefs))return`entityRefs: array expected`;for(var i=0;i<message.entityRefs.length;++i){var error=$root.opentelemetry.proto.common.v1.EntityRef.verify(message.entityRefs[i]);if(error)return`entityRefs.`+error}}return null},Resource.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.resource.v1.Resource)return object;var message=new $root.opentelemetry.proto.resource.v1.Resource;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.resource.v1.Resource.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.resource.v1.Resource.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.entityRefs){if(!Array.isArray(object.entityRefs))throw TypeError(`.opentelemetry.proto.resource.v1.Resource.entityRefs: array expected`);message.entityRefs=[];for(var i=0;i<object.entityRefs.length;++i){if(typeof object.entityRefs[i]!=`object`)throw TypeError(`.opentelemetry.proto.resource.v1.Resource.entityRefs: object expected`);message.entityRefs[i]=$root.opentelemetry.proto.common.v1.EntityRef.fromObject(object.entityRefs[i])}}return message},Resource.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[],object.entityRefs=[]),options.defaults&&(object.droppedAttributesCount=0),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.entityRefs&&message.entityRefs.length){object.entityRefs=[];for(var j=0;j<message.entityRefs.length;++j)object.entityRefs[j]=$root.opentelemetry.proto.common.v1.EntityRef.toObject(message.entityRefs[j],options)}return object},Resource.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Resource.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.resource.v1.Resource`},Resource})(),v1})(),resource})(),proto.trace=(function(){var trace$1={};return trace$1.v1=(function(){var v1={};return v1.TracesData=(function(){function TracesData(properties){if(this.resourceSpans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return TracesData.prototype.resourceSpans=$util.emptyArray,TracesData.create=function(properties){return new TracesData(properties)},TracesData.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceSpans!=null&&message.resourceSpans.length)for(var i=0;i<message.resourceSpans.length;++i)$root.opentelemetry.proto.trace.v1.ResourceSpans.encode(message.resourceSpans[i],writer.uint32(10).fork()).ldelim();return writer},TracesData.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},TracesData.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.TracesData;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceSpans&&message.resourceSpans.length||(message.resourceSpans=[]),message.resourceSpans.push($root.opentelemetry.proto.trace.v1.ResourceSpans.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},TracesData.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},TracesData.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceSpans!=null&&message.hasOwnProperty(`resourceSpans`)){if(!Array.isArray(message.resourceSpans))return`resourceSpans: array expected`;for(var i=0;i<message.resourceSpans.length;++i){var error=$root.opentelemetry.proto.trace.v1.ResourceSpans.verify(message.resourceSpans[i]);if(error)return`resourceSpans.`+error}}return null},TracesData.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.TracesData)return object;var message=new $root.opentelemetry.proto.trace.v1.TracesData;if(object.resourceSpans){if(!Array.isArray(object.resourceSpans))throw TypeError(`.opentelemetry.proto.trace.v1.TracesData.resourceSpans: array expected`);message.resourceSpans=[];for(var i=0;i<object.resourceSpans.length;++i){if(typeof object.resourceSpans[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.TracesData.resourceSpans: object expected`);message.resourceSpans[i]=$root.opentelemetry.proto.trace.v1.ResourceSpans.fromObject(object.resourceSpans[i])}}return message},TracesData.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceSpans=[]),message.resourceSpans&&message.resourceSpans.length){object.resourceSpans=[];for(var j=0;j<message.resourceSpans.length;++j)object.resourceSpans[j]=$root.opentelemetry.proto.trace.v1.ResourceSpans.toObject(message.resourceSpans[j],options)}return object},TracesData.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},TracesData.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.TracesData`},TracesData})(),v1.ResourceSpans=(function(){function ResourceSpans(properties){if(this.scopeSpans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ResourceSpans.prototype.resource=null,ResourceSpans.prototype.scopeSpans=$util.emptyArray,ResourceSpans.prototype.schemaUrl=null,ResourceSpans.create=function(properties){return new ResourceSpans(properties)},ResourceSpans.encode=function(message,writer){if(writer||=$Writer.create(),message.resource!=null&&Object.hasOwnProperty.call(message,`resource`)&&$root.opentelemetry.proto.resource.v1.Resource.encode(message.resource,writer.uint32(10).fork()).ldelim(),message.scopeSpans!=null&&message.scopeSpans.length)for(var i=0;i<message.scopeSpans.length;++i)$root.opentelemetry.proto.trace.v1.ScopeSpans.encode(message.scopeSpans[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ResourceSpans.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ResourceSpans.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.ResourceSpans;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resource=$root.opentelemetry.proto.resource.v1.Resource.decode(reader,reader.uint32());break;case 2:message.scopeSpans&&message.scopeSpans.length||(message.scopeSpans=[]),message.scopeSpans.push($root.opentelemetry.proto.trace.v1.ScopeSpans.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ResourceSpans.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ResourceSpans.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resource!=null&&message.hasOwnProperty(`resource`)){var error=$root.opentelemetry.proto.resource.v1.Resource.verify(message.resource);if(error)return`resource.`+error}if(message.scopeSpans!=null&&message.hasOwnProperty(`scopeSpans`)){if(!Array.isArray(message.scopeSpans))return`scopeSpans: array expected`;for(var i=0;i<message.scopeSpans.length;++i){var error=$root.opentelemetry.proto.trace.v1.ScopeSpans.verify(message.scopeSpans[i]);if(error)return`scopeSpans.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ResourceSpans.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.ResourceSpans)return object;var message=new $root.opentelemetry.proto.trace.v1.ResourceSpans;if(object.resource!=null){if(typeof object.resource!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ResourceSpans.resource: object expected`);message.resource=$root.opentelemetry.proto.resource.v1.Resource.fromObject(object.resource)}if(object.scopeSpans){if(!Array.isArray(object.scopeSpans))throw TypeError(`.opentelemetry.proto.trace.v1.ResourceSpans.scopeSpans: array expected`);message.scopeSpans=[];for(var i=0;i<object.scopeSpans.length;++i){if(typeof object.scopeSpans[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ResourceSpans.scopeSpans: object expected`);message.scopeSpans[i]=$root.opentelemetry.proto.trace.v1.ScopeSpans.fromObject(object.scopeSpans[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ResourceSpans.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.scopeSpans=[]),options.defaults&&(object.resource=null,object.schemaUrl=``),message.resource!=null&&message.hasOwnProperty(`resource`)&&(object.resource=$root.opentelemetry.proto.resource.v1.Resource.toObject(message.resource,options)),message.scopeSpans&&message.scopeSpans.length){object.scopeSpans=[];for(var j=0;j<message.scopeSpans.length;++j)object.scopeSpans[j]=$root.opentelemetry.proto.trace.v1.ScopeSpans.toObject(message.scopeSpans[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ResourceSpans.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ResourceSpans.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.ResourceSpans`},ResourceSpans})(),v1.ScopeSpans=(function(){function ScopeSpans(properties){if(this.spans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ScopeSpans.prototype.scope=null,ScopeSpans.prototype.spans=$util.emptyArray,ScopeSpans.prototype.schemaUrl=null,ScopeSpans.create=function(properties){return new ScopeSpans(properties)},ScopeSpans.encode=function(message,writer){if(writer||=$Writer.create(),message.scope!=null&&Object.hasOwnProperty.call(message,`scope`)&&$root.opentelemetry.proto.common.v1.InstrumentationScope.encode(message.scope,writer.uint32(10).fork()).ldelim(),message.spans!=null&&message.spans.length)for(var i=0;i<message.spans.length;++i)$root.opentelemetry.proto.trace.v1.Span.encode(message.spans[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ScopeSpans.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ScopeSpans.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.ScopeSpans;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.decode(reader,reader.uint32());break;case 2:message.spans&&message.spans.length||(message.spans=[]),message.spans.push($root.opentelemetry.proto.trace.v1.Span.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ScopeSpans.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ScopeSpans.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.scope!=null&&message.hasOwnProperty(`scope`)){var error=$root.opentelemetry.proto.common.v1.InstrumentationScope.verify(message.scope);if(error)return`scope.`+error}if(message.spans!=null&&message.hasOwnProperty(`spans`)){if(!Array.isArray(message.spans))return`spans: array expected`;for(var i=0;i<message.spans.length;++i){var error=$root.opentelemetry.proto.trace.v1.Span.verify(message.spans[i]);if(error)return`spans.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ScopeSpans.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.ScopeSpans)return object;var message=new $root.opentelemetry.proto.trace.v1.ScopeSpans;if(object.scope!=null){if(typeof object.scope!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ScopeSpans.scope: object expected`);message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.fromObject(object.scope)}if(object.spans){if(!Array.isArray(object.spans))throw TypeError(`.opentelemetry.proto.trace.v1.ScopeSpans.spans: array expected`);message.spans=[];for(var i=0;i<object.spans.length;++i){if(typeof object.spans[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ScopeSpans.spans: object expected`);message.spans[i]=$root.opentelemetry.proto.trace.v1.Span.fromObject(object.spans[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ScopeSpans.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.spans=[]),options.defaults&&(object.scope=null,object.schemaUrl=``),message.scope!=null&&message.hasOwnProperty(`scope`)&&(object.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.toObject(message.scope,options)),message.spans&&message.spans.length){object.spans=[];for(var j=0;j<message.spans.length;++j)object.spans[j]=$root.opentelemetry.proto.trace.v1.Span.toObject(message.spans[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ScopeSpans.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ScopeSpans.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.ScopeSpans`},ScopeSpans})(),v1.Span=(function(){function Span(properties){if(this.attributes=[],this.events=[],this.links=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Span.prototype.traceId=null,Span.prototype.spanId=null,Span.prototype.traceState=null,Span.prototype.parentSpanId=null,Span.prototype.flags=null,Span.prototype.name=null,Span.prototype.kind=null,Span.prototype.startTimeUnixNano=null,Span.prototype.endTimeUnixNano=null,Span.prototype.attributes=$util.emptyArray,Span.prototype.droppedAttributesCount=null,Span.prototype.events=$util.emptyArray,Span.prototype.droppedEventsCount=null,Span.prototype.links=$util.emptyArray,Span.prototype.droppedLinksCount=null,Span.prototype.status=null,Span.create=function(properties){return new Span(properties)},Span.encode=function(message,writer){if(writer||=$Writer.create(),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(10).bytes(message.traceId),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(18).bytes(message.spanId),message.traceState!=null&&Object.hasOwnProperty.call(message,`traceState`)&&writer.uint32(26).string(message.traceState),message.parentSpanId!=null&&Object.hasOwnProperty.call(message,`parentSpanId`)&&writer.uint32(34).bytes(message.parentSpanId),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(42).string(message.name),message.kind!=null&&Object.hasOwnProperty.call(message,`kind`)&&writer.uint32(48).int32(message.kind),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(57).fixed64(message.startTimeUnixNano),message.endTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`endTimeUnixNano`)&&writer.uint32(65).fixed64(message.endTimeUnixNano),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(74).fork()).ldelim();if(message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(80).uint32(message.droppedAttributesCount),message.events!=null&&message.events.length)for(var i=0;i<message.events.length;++i)$root.opentelemetry.proto.trace.v1.Span.Event.encode(message.events[i],writer.uint32(90).fork()).ldelim();if(message.droppedEventsCount!=null&&Object.hasOwnProperty.call(message,`droppedEventsCount`)&&writer.uint32(96).uint32(message.droppedEventsCount),message.links!=null&&message.links.length)for(var i=0;i<message.links.length;++i)$root.opentelemetry.proto.trace.v1.Span.Link.encode(message.links[i],writer.uint32(106).fork()).ldelim();return message.droppedLinksCount!=null&&Object.hasOwnProperty.call(message,`droppedLinksCount`)&&writer.uint32(112).uint32(message.droppedLinksCount),message.status!=null&&Object.hasOwnProperty.call(message,`status`)&&$root.opentelemetry.proto.trace.v1.Status.encode(message.status,writer.uint32(122).fork()).ldelim(),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(133).fixed32(message.flags),writer},Span.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Span.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Span;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.traceId=reader.bytes();break;case 2:message.spanId=reader.bytes();break;case 3:message.traceState=reader.string();break;case 4:message.parentSpanId=reader.bytes();break;case 16:message.flags=reader.fixed32();break;case 5:message.name=reader.string();break;case 6:message.kind=reader.int32();break;case 7:message.startTimeUnixNano=reader.fixed64();break;case 8:message.endTimeUnixNano=reader.fixed64();break;case 9:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 10:message.droppedAttributesCount=reader.uint32();break;case 11:message.events&&message.events.length||(message.events=[]),message.events.push($root.opentelemetry.proto.trace.v1.Span.Event.decode(reader,reader.uint32()));break;case 12:message.droppedEventsCount=reader.uint32();break;case 13:message.links&&message.links.length||(message.links=[]),message.links.push($root.opentelemetry.proto.trace.v1.Span.Link.decode(reader,reader.uint32()));break;case 14:message.droppedLinksCount=reader.uint32();break;case 15:message.status=$root.opentelemetry.proto.trace.v1.Status.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},Span.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Span.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId)))return`traceId: buffer expected`;if(message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId)))return`spanId: buffer expected`;if(message.traceState!=null&&message.hasOwnProperty(`traceState`)&&!$util.isString(message.traceState))return`traceState: string expected`;if(message.parentSpanId!=null&&message.hasOwnProperty(`parentSpanId`)&&!(message.parentSpanId&&typeof message.parentSpanId.length==`number`||$util.isString(message.parentSpanId)))return`parentSpanId: buffer expected`;if(message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags))return`flags: integer expected`;if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.kind!=null&&message.hasOwnProperty(`kind`))switch(message.kind){default:return`kind: enum value expected`;case 0:case 1:case 2:case 3:case 4:case 5:break}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.endTimeUnixNano!=null&&message.hasOwnProperty(`endTimeUnixNano`)&&!$util.isInteger(message.endTimeUnixNano)&&!(message.endTimeUnixNano&&$util.isInteger(message.endTimeUnixNano.low)&&$util.isInteger(message.endTimeUnixNano.high)))return`endTimeUnixNano: integer|Long expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount))return`droppedAttributesCount: integer expected`;if(message.events!=null&&message.hasOwnProperty(`events`)){if(!Array.isArray(message.events))return`events: array expected`;for(var i=0;i<message.events.length;++i){var error=$root.opentelemetry.proto.trace.v1.Span.Event.verify(message.events[i]);if(error)return`events.`+error}}if(message.droppedEventsCount!=null&&message.hasOwnProperty(`droppedEventsCount`)&&!$util.isInteger(message.droppedEventsCount))return`droppedEventsCount: integer expected`;if(message.links!=null&&message.hasOwnProperty(`links`)){if(!Array.isArray(message.links))return`links: array expected`;for(var i=0;i<message.links.length;++i){var error=$root.opentelemetry.proto.trace.v1.Span.Link.verify(message.links[i]);if(error)return`links.`+error}}if(message.droppedLinksCount!=null&&message.hasOwnProperty(`droppedLinksCount`)&&!$util.isInteger(message.droppedLinksCount))return`droppedLinksCount: integer expected`;if(message.status!=null&&message.hasOwnProperty(`status`)){var error=$root.opentelemetry.proto.trace.v1.Status.verify(message.status);if(error)return`status.`+error}return null},Span.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Span)return object;var message=new $root.opentelemetry.proto.trace.v1.Span;switch(object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.traceState!=null&&(message.traceState=String(object.traceState)),object.parentSpanId!=null&&(typeof object.parentSpanId==`string`?$util.base64.decode(object.parentSpanId,message.parentSpanId=$util.newBuffer($util.base64.length(object.parentSpanId)),0):object.parentSpanId.length>=0&&(message.parentSpanId=object.parentSpanId)),object.flags!=null&&(message.flags=object.flags>>>0),object.name!=null&&(message.name=String(object.name)),object.kind){default:if(typeof object.kind==`number`){message.kind=object.kind;break}break;case`SPAN_KIND_UNSPECIFIED`:case 0:message.kind=0;break;case`SPAN_KIND_INTERNAL`:case 1:message.kind=1;break;case`SPAN_KIND_SERVER`:case 2:message.kind=2;break;case`SPAN_KIND_CLIENT`:case 3:message.kind=3;break;case`SPAN_KIND_PRODUCER`:case 4:message.kind=4;break;case`SPAN_KIND_CONSUMER`:case 5:message.kind=5;break}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.endTimeUnixNano!=null&&($util.Long?(message.endTimeUnixNano=$util.Long.fromValue(object.endTimeUnixNano)).unsigned=!1:typeof object.endTimeUnixNano==`string`?message.endTimeUnixNano=parseInt(object.endTimeUnixNano,10):typeof object.endTimeUnixNano==`number`?message.endTimeUnixNano=object.endTimeUnixNano:typeof object.endTimeUnixNano==`object`&&(message.endTimeUnixNano=new $util.LongBits(object.endTimeUnixNano.low>>>0,object.endTimeUnixNano.high>>>0).toNumber())),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.trace.v1.Span.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.events){if(!Array.isArray(object.events))throw TypeError(`.opentelemetry.proto.trace.v1.Span.events: array expected`);message.events=[];for(var i=0;i<object.events.length;++i){if(typeof object.events[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.events: object expected`);message.events[i]=$root.opentelemetry.proto.trace.v1.Span.Event.fromObject(object.events[i])}}if(object.droppedEventsCount!=null&&(message.droppedEventsCount=object.droppedEventsCount>>>0),object.links){if(!Array.isArray(object.links))throw TypeError(`.opentelemetry.proto.trace.v1.Span.links: array expected`);message.links=[];for(var i=0;i<object.links.length;++i){if(typeof object.links[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.links: object expected`);message.links[i]=$root.opentelemetry.proto.trace.v1.Span.Link.fromObject(object.links[i])}}if(object.droppedLinksCount!=null&&(message.droppedLinksCount=object.droppedLinksCount>>>0),object.status!=null){if(typeof object.status!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.status: object expected`);message.status=$root.opentelemetry.proto.trace.v1.Status.fromObject(object.status)}return message},Span.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[],object.events=[],object.links=[]),options.defaults){if(options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId))),options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),object.traceState=``,options.bytes===String?object.parentSpanId=``:(object.parentSpanId=[],options.bytes!==Array&&(object.parentSpanId=$util.newBuffer(object.parentSpanId))),object.name=``,object.kind=options.enums===String?`SPAN_KIND_UNSPECIFIED`:0,$util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.endTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.endTimeUnixNano=options.longs===String?`0`:0;object.droppedAttributesCount=0,object.droppedEventsCount=0,object.droppedLinksCount=0,object.status=null,object.flags=0}if(message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.traceState!=null&&message.hasOwnProperty(`traceState`)&&(object.traceState=message.traceState),message.parentSpanId!=null&&message.hasOwnProperty(`parentSpanId`)&&(object.parentSpanId=options.bytes===String?$util.base64.encode(message.parentSpanId,0,message.parentSpanId.length):options.bytes===Array?Array.prototype.slice.call(message.parentSpanId):message.parentSpanId),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.kind!=null&&message.hasOwnProperty(`kind`)&&(object.kind=options.enums===String?$root.opentelemetry.proto.trace.v1.Span.SpanKind[message.kind]===void 0?message.kind:$root.opentelemetry.proto.trace.v1.Span.SpanKind[message.kind]:message.kind),message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.endTimeUnixNano!=null&&message.hasOwnProperty(`endTimeUnixNano`)&&(typeof message.endTimeUnixNano==`number`?object.endTimeUnixNano=options.longs===String?String(message.endTimeUnixNano):message.endTimeUnixNano:object.endTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.endTimeUnixNano):options.longs===Number?new $util.LongBits(message.endTimeUnixNano.low>>>0,message.endTimeUnixNano.high>>>0).toNumber():message.endTimeUnixNano),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.events&&message.events.length){object.events=[];for(var j=0;j<message.events.length;++j)object.events[j]=$root.opentelemetry.proto.trace.v1.Span.Event.toObject(message.events[j],options)}if(message.droppedEventsCount!=null&&message.hasOwnProperty(`droppedEventsCount`)&&(object.droppedEventsCount=message.droppedEventsCount),message.links&&message.links.length){object.links=[];for(var j=0;j<message.links.length;++j)object.links[j]=$root.opentelemetry.proto.trace.v1.Span.Link.toObject(message.links[j],options)}return message.droppedLinksCount!=null&&message.hasOwnProperty(`droppedLinksCount`)&&(object.droppedLinksCount=message.droppedLinksCount),message.status!=null&&message.hasOwnProperty(`status`)&&(object.status=$root.opentelemetry.proto.trace.v1.Status.toObject(message.status,options)),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},Span.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Span.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Span`},Span.SpanKind=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`SPAN_KIND_UNSPECIFIED`]=0,values[valuesById[1]=`SPAN_KIND_INTERNAL`]=1,values[valuesById[2]=`SPAN_KIND_SERVER`]=2,values[valuesById[3]=`SPAN_KIND_CLIENT`]=3,values[valuesById[4]=`SPAN_KIND_PRODUCER`]=4,values[valuesById[5]=`SPAN_KIND_CONSUMER`]=5,values})(),Span.Event=(function(){function Event(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Event.prototype.timeUnixNano=null,Event.prototype.name=null,Event.prototype.attributes=$util.emptyArray,Event.prototype.droppedAttributesCount=null,Event.create=function(properties){return new Event(properties)},Event.encode=function(message,writer){if(writer||=$Writer.create(),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(9).fixed64(message.timeUnixNano),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(18).string(message.name),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(26).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(32).uint32(message.droppedAttributesCount),writer},Event.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Event.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Span.Event;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.timeUnixNano=reader.fixed64();break;case 2:message.name=reader.string();break;case 3:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 4:message.droppedAttributesCount=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},Event.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Event.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:null},Event.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Span.Event)return object;var message=new $root.opentelemetry.proto.trace.v1.Span.Event;if(object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.name!=null&&(message.name=String(object.name)),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.trace.v1.Span.Event.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.Event.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),message},Event.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;object.name=``,object.droppedAttributesCount=0}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),object},Event.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Event.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Span.Event`},Event})(),Span.Link=(function(){function Link(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Link.prototype.traceId=null,Link.prototype.spanId=null,Link.prototype.traceState=null,Link.prototype.attributes=$util.emptyArray,Link.prototype.droppedAttributesCount=null,Link.prototype.flags=null,Link.create=function(properties){return new Link(properties)},Link.encode=function(message,writer){if(writer||=$Writer.create(),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(10).bytes(message.traceId),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(18).bytes(message.spanId),message.traceState!=null&&Object.hasOwnProperty.call(message,`traceState`)&&writer.uint32(26).string(message.traceState),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(34).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(40).uint32(message.droppedAttributesCount),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(53).fixed32(message.flags),writer},Link.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Link.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Span.Link;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.traceId=reader.bytes();break;case 2:message.spanId=reader.bytes();break;case 3:message.traceState=reader.string();break;case 4:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 5:message.droppedAttributesCount=reader.uint32();break;case 6:message.flags=reader.fixed32();break;default:reader.skipType(tag&7);break}}return message},Link.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Link.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId)))return`traceId: buffer expected`;if(message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId)))return`spanId: buffer expected`;if(message.traceState!=null&&message.hasOwnProperty(`traceState`)&&!$util.isString(message.traceState))return`traceState: string expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:null},Link.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Span.Link)return object;var message=new $root.opentelemetry.proto.trace.v1.Span.Link;if(object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.traceState!=null&&(message.traceState=String(object.traceState)),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.trace.v1.Span.Link.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.Link.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.flags!=null&&(message.flags=object.flags>>>0),message},Link.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults&&(options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId))),options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),object.traceState=``,object.droppedAttributesCount=0,object.flags=0),message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.traceState!=null&&message.hasOwnProperty(`traceState`)&&(object.traceState=message.traceState),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},Link.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Link.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Span.Link`},Link})(),Span})(),v1.Status=(function(){function Status(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Status.prototype.message=null,Status.prototype.code=null,Status.create=function(properties){return new Status(properties)},Status.encode=function(message,writer){return writer||=$Writer.create(),message.message!=null&&Object.hasOwnProperty.call(message,`message`)&&writer.uint32(18).string(message.message),message.code!=null&&Object.hasOwnProperty.call(message,`code`)&&writer.uint32(24).int32(message.code),writer},Status.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Status.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Status;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:message.message=reader.string();break;case 3:message.code=reader.int32();break;default:reader.skipType(tag&7);break}}return message},Status.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Status.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.message!=null&&message.hasOwnProperty(`message`)&&!$util.isString(message.message))return`message: string expected`;if(message.code!=null&&message.hasOwnProperty(`code`))switch(message.code){default:return`code: enum value expected`;case 0:case 1:case 2:break}return null},Status.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Status)return object;var message=new $root.opentelemetry.proto.trace.v1.Status;switch(object.message!=null&&(message.message=String(object.message)),object.code){default:if(typeof object.code==`number`){message.code=object.code;break}break;case`STATUS_CODE_UNSET`:case 0:message.code=0;break;case`STATUS_CODE_OK`:case 1:message.code=1;break;case`STATUS_CODE_ERROR`:case 2:message.code=2;break}return message},Status.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.message=``,object.code=options.enums===String?`STATUS_CODE_UNSET`:0),message.message!=null&&message.hasOwnProperty(`message`)&&(object.message=message.message),message.code!=null&&message.hasOwnProperty(`code`)&&(object.code=options.enums===String?$root.opentelemetry.proto.trace.v1.Status.StatusCode[message.code]===void 0?message.code:$root.opentelemetry.proto.trace.v1.Status.StatusCode[message.code]:message.code),object},Status.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Status.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Status`},Status.StatusCode=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`STATUS_CODE_UNSET`]=0,values[valuesById[1]=`STATUS_CODE_OK`]=1,values[valuesById[2]=`STATUS_CODE_ERROR`]=2,values})(),Status})(),v1.SpanFlags=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`SPAN_FLAGS_DO_NOT_USE`]=0,values[valuesById[255]=`SPAN_FLAGS_TRACE_FLAGS_MASK`]=255,values[valuesById[256]=`SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK`]=256,values[valuesById[512]=`SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK`]=512,values})(),v1})(),trace$1})(),proto.collector=(function(){var collector={};return collector.trace=(function(){var trace$1={};return trace$1.v1=(function(){var v1={};return v1.TraceService=(function(){function TraceService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}return(TraceService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=TraceService,TraceService.create=function(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)},Object.defineProperty(TraceService.prototype.export=function export_(request,callback){return this.rpcCall(export_,$root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,$root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,request,callback)},`name`,{value:`Export`}),TraceService})(),v1.ExportTraceServiceRequest=(function(){function ExportTraceServiceRequest(properties){if(this.resourceSpans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportTraceServiceRequest.prototype.resourceSpans=$util.emptyArray,ExportTraceServiceRequest.create=function(properties){return new ExportTraceServiceRequest(properties)},ExportTraceServiceRequest.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceSpans!=null&&message.resourceSpans.length)for(var i=0;i<message.resourceSpans.length;++i)$root.opentelemetry.proto.trace.v1.ResourceSpans.encode(message.resourceSpans[i],writer.uint32(10).fork()).ldelim();return writer},ExportTraceServiceRequest.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportTraceServiceRequest.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceSpans&&message.resourceSpans.length||(message.resourceSpans=[]),message.resourceSpans.push($root.opentelemetry.proto.trace.v1.ResourceSpans.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ExportTraceServiceRequest.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportTraceServiceRequest.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceSpans!=null&&message.hasOwnProperty(`resourceSpans`)){if(!Array.isArray(message.resourceSpans))return`resourceSpans: array expected`;for(var i=0;i<message.resourceSpans.length;++i){var error=$root.opentelemetry.proto.trace.v1.ResourceSpans.verify(message.resourceSpans[i]);if(error)return`resourceSpans.`+error}}return null},ExportTraceServiceRequest.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest)return object;var message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;if(object.resourceSpans){if(!Array.isArray(object.resourceSpans))throw TypeError(`.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest.resourceSpans: array expected`);message.resourceSpans=[];for(var i=0;i<object.resourceSpans.length;++i){if(typeof object.resourceSpans[i]!=`object`)throw TypeError(`.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest.resourceSpans: object expected`);message.resourceSpans[i]=$root.opentelemetry.proto.trace.v1.ResourceSpans.fromObject(object.resourceSpans[i])}}return message},ExportTraceServiceRequest.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceSpans=[]),message.resourceSpans&&message.resourceSpans.length){object.resourceSpans=[];for(var j=0;j<message.resourceSpans.length;++j)object.resourceSpans[j]=$root.opentelemetry.proto.trace.v1.ResourceSpans.toObject(message.resourceSpans[j],options)}return object},ExportTraceServiceRequest.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportTraceServiceRequest.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest`},ExportTraceServiceRequest})(),v1.ExportTraceServiceResponse=(function(){function ExportTraceServiceResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportTraceServiceResponse.prototype.partialSuccess=null,ExportTraceServiceResponse.create=function(properties){return new ExportTraceServiceResponse(properties)},ExportTraceServiceResponse.encode=function(message,writer){return writer||=$Writer.create(),message.partialSuccess!=null&&Object.hasOwnProperty.call(message,`partialSuccess`)&&$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.encode(message.partialSuccess,writer.uint32(10).fork()).ldelim(),writer},ExportTraceServiceResponse.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportTraceServiceResponse.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.partialSuccess=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},ExportTraceServiceResponse.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportTraceServiceResponse.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)){var error=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.verify(message.partialSuccess);if(error)return`partialSuccess.`+error}return null},ExportTraceServiceResponse.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse)return object;var message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;if(object.partialSuccess!=null){if(typeof object.partialSuccess!=`object`)throw TypeError(`.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse.partialSuccess: object expected`);message.partialSuccess=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.fromObject(object.partialSuccess)}return message},ExportTraceServiceResponse.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.partialSuccess=null),message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)&&(object.partialSuccess=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.toObject(message.partialSuccess,options)),object},ExportTraceServiceResponse.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportTraceServiceResponse.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse`},ExportTraceServiceResponse})(),v1.ExportTracePartialSuccess=(function(){function ExportTracePartialSuccess(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportTracePartialSuccess.prototype.rejectedSpans=null,ExportTracePartialSuccess.prototype.errorMessage=null,ExportTracePartialSuccess.create=function(properties){return new ExportTracePartialSuccess(properties)},ExportTracePartialSuccess.encode=function(message,writer){return writer||=$Writer.create(),message.rejectedSpans!=null&&Object.hasOwnProperty.call(message,`rejectedSpans`)&&writer.uint32(8).int64(message.rejectedSpans),message.errorMessage!=null&&Object.hasOwnProperty.call(message,`errorMessage`)&&writer.uint32(18).string(message.errorMessage),writer},ExportTracePartialSuccess.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportTracePartialSuccess.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.rejectedSpans=reader.int64();break;case 2:message.errorMessage=reader.string();break;default:reader.skipType(tag&7);break}}return message},ExportTracePartialSuccess.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportTracePartialSuccess.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.rejectedSpans!=null&&message.hasOwnProperty(`rejectedSpans`)&&!$util.isInteger(message.rejectedSpans)&&!(message.rejectedSpans&&$util.isInteger(message.rejectedSpans.low)&&$util.isInteger(message.rejectedSpans.high))?`rejectedSpans: integer|Long expected`:message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&!$util.isString(message.errorMessage)?`errorMessage: string expected`:null},ExportTracePartialSuccess.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess)return object;var message=new $root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess;return object.rejectedSpans!=null&&($util.Long?(message.rejectedSpans=$util.Long.fromValue(object.rejectedSpans)).unsigned=!1:typeof object.rejectedSpans==`string`?message.rejectedSpans=parseInt(object.rejectedSpans,10):typeof object.rejectedSpans==`number`?message.rejectedSpans=object.rejectedSpans:typeof object.rejectedSpans==`object`&&(message.rejectedSpans=new $util.LongBits(object.rejectedSpans.low>>>0,object.rejectedSpans.high>>>0).toNumber())),object.errorMessage!=null&&(message.errorMessage=String(object.errorMessage)),message},ExportTracePartialSuccess.toObject=function(message,options){options||={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.rejectedSpans=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.rejectedSpans=options.longs===String?`0`:0;object.errorMessage=``}return message.rejectedSpans!=null&&message.hasOwnProperty(`rejectedSpans`)&&(typeof message.rejectedSpans==`number`?object.rejectedSpans=options.longs===String?String(message.rejectedSpans):message.rejectedSpans:object.rejectedSpans=options.longs===String?$util.Long.prototype.toString.call(message.rejectedSpans):options.longs===Number?new $util.LongBits(message.rejectedSpans.low>>>0,message.rejectedSpans.high>>>0).toNumber():message.rejectedSpans),message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&(object.errorMessage=message.errorMessage),object},ExportTracePartialSuccess.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportTracePartialSuccess.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess`},ExportTracePartialSuccess})(),v1})(),trace$1})(),collector.metrics=(function(){var metrics={};return metrics.v1=(function(){var v1={};return v1.MetricsService=(function(){function MetricsService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}return(MetricsService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=MetricsService,MetricsService.create=function(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)},Object.defineProperty(MetricsService.prototype.export=function export_(request,callback){return this.rpcCall(export_,$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest,$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse,request,callback)},`name`,{value:`Export`}),MetricsService})(),v1.ExportMetricsServiceRequest=(function(){function ExportMetricsServiceRequest(properties){if(this.resourceMetrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportMetricsServiceRequest.prototype.resourceMetrics=$util.emptyArray,ExportMetricsServiceRequest.create=function(properties){return new ExportMetricsServiceRequest(properties)},ExportMetricsServiceRequest.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceMetrics!=null&&message.resourceMetrics.length)for(var i=0;i<message.resourceMetrics.length;++i)$root.opentelemetry.proto.metrics.v1.ResourceMetrics.encode(message.resourceMetrics[i],writer.uint32(10).fork()).ldelim();return writer},ExportMetricsServiceRequest.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportMetricsServiceRequest.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceMetrics&&message.resourceMetrics.length||(message.resourceMetrics=[]),message.resourceMetrics.push($root.opentelemetry.proto.metrics.v1.ResourceMetrics.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ExportMetricsServiceRequest.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportMetricsServiceRequest.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceMetrics!=null&&message.hasOwnProperty(`resourceMetrics`)){if(!Array.isArray(message.resourceMetrics))return`resourceMetrics: array expected`;for(var i=0;i<message.resourceMetrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.verify(message.resourceMetrics[i]);if(error)return`resourceMetrics.`+error}}return null},ExportMetricsServiceRequest.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest)return object;var message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;if(object.resourceMetrics){if(!Array.isArray(object.resourceMetrics))throw TypeError(`.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest.resourceMetrics: array expected`);message.resourceMetrics=[];for(var i=0;i<object.resourceMetrics.length;++i){if(typeof object.resourceMetrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest.resourceMetrics: object expected`);message.resourceMetrics[i]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.fromObject(object.resourceMetrics[i])}}return message},ExportMetricsServiceRequest.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceMetrics=[]),message.resourceMetrics&&message.resourceMetrics.length){object.resourceMetrics=[];for(var j=0;j<message.resourceMetrics.length;++j)object.resourceMetrics[j]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.toObject(message.resourceMetrics[j],options)}return object},ExportMetricsServiceRequest.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportMetricsServiceRequest.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest`},ExportMetricsServiceRequest})(),v1.ExportMetricsServiceResponse=(function(){function ExportMetricsServiceResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportMetricsServiceResponse.prototype.partialSuccess=null,ExportMetricsServiceResponse.create=function(properties){return new ExportMetricsServiceResponse(properties)},ExportMetricsServiceResponse.encode=function(message,writer){return writer||=$Writer.create(),message.partialSuccess!=null&&Object.hasOwnProperty.call(message,`partialSuccess`)&&$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.encode(message.partialSuccess,writer.uint32(10).fork()).ldelim(),writer},ExportMetricsServiceResponse.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportMetricsServiceResponse.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.partialSuccess=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},ExportMetricsServiceResponse.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportMetricsServiceResponse.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)){var error=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.verify(message.partialSuccess);if(error)return`partialSuccess.`+error}return null},ExportMetricsServiceResponse.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse)return object;var message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse;if(object.partialSuccess!=null){if(typeof object.partialSuccess!=`object`)throw TypeError(`.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse.partialSuccess: object expected`);message.partialSuccess=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.fromObject(object.partialSuccess)}return message},ExportMetricsServiceResponse.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.partialSuccess=null),message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)&&(object.partialSuccess=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.toObject(message.partialSuccess,options)),object},ExportMetricsServiceResponse.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportMetricsServiceResponse.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse`},ExportMetricsServiceResponse})(),v1.ExportMetricsPartialSuccess=(function(){function ExportMetricsPartialSuccess(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportMetricsPartialSuccess.prototype.rejectedDataPoints=null,ExportMetricsPartialSuccess.prototype.errorMessage=null,ExportMetricsPartialSuccess.create=function(properties){return new ExportMetricsPartialSuccess(properties)},ExportMetricsPartialSuccess.encode=function(message,writer){return writer||=$Writer.create(),message.rejectedDataPoints!=null&&Object.hasOwnProperty.call(message,`rejectedDataPoints`)&&writer.uint32(8).int64(message.rejectedDataPoints),message.errorMessage!=null&&Object.hasOwnProperty.call(message,`errorMessage`)&&writer.uint32(18).string(message.errorMessage),writer},ExportMetricsPartialSuccess.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportMetricsPartialSuccess.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.rejectedDataPoints=reader.int64();break;case 2:message.errorMessage=reader.string();break;default:reader.skipType(tag&7);break}}return message},ExportMetricsPartialSuccess.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportMetricsPartialSuccess.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.rejectedDataPoints!=null&&message.hasOwnProperty(`rejectedDataPoints`)&&!$util.isInteger(message.rejectedDataPoints)&&!(message.rejectedDataPoints&&$util.isInteger(message.rejectedDataPoints.low)&&$util.isInteger(message.rejectedDataPoints.high))?`rejectedDataPoints: integer|Long expected`:message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&!$util.isString(message.errorMessage)?`errorMessage: string expected`:null},ExportMetricsPartialSuccess.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess)return object;var message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess;return object.rejectedDataPoints!=null&&($util.Long?(message.rejectedDataPoints=$util.Long.fromValue(object.rejectedDataPoints)).unsigned=!1:typeof object.rejectedDataPoints==`string`?message.rejectedDataPoints=parseInt(object.rejectedDataPoints,10):typeof object.rejectedDataPoints==`number`?message.rejectedDataPoints=object.rejectedDataPoints:typeof object.rejectedDataPoints==`object`&&(message.rejectedDataPoints=new $util.LongBits(object.rejectedDataPoints.low>>>0,object.rejectedDataPoints.high>>>0).toNumber())),object.errorMessage!=null&&(message.errorMessage=String(object.errorMessage)),message},ExportMetricsPartialSuccess.toObject=function(message,options){options||={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.rejectedDataPoints=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.rejectedDataPoints=options.longs===String?`0`:0;object.errorMessage=``}return message.rejectedDataPoints!=null&&message.hasOwnProperty(`rejectedDataPoints`)&&(typeof message.rejectedDataPoints==`number`?object.rejectedDataPoints=options.longs===String?String(message.rejectedDataPoints):message.rejectedDataPoints:object.rejectedDataPoints=options.longs===String?$util.Long.prototype.toString.call(message.rejectedDataPoints):options.longs===Number?new $util.LongBits(message.rejectedDataPoints.low>>>0,message.rejectedDataPoints.high>>>0).toNumber():message.rejectedDataPoints),message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&(object.errorMessage=message.errorMessage),object},ExportMetricsPartialSuccess.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportMetricsPartialSuccess.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess`},ExportMetricsPartialSuccess})(),v1})(),metrics})(),collector.logs=(function(){var logs={};return logs.v1=(function(){var v1={};return v1.LogsService=(function(){function LogsService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}return(LogsService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=LogsService,LogsService.create=function(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)},Object.defineProperty(LogsService.prototype.export=function export_(request,callback){return this.rpcCall(export_,$root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest,$root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse,request,callback)},`name`,{value:`Export`}),LogsService})(),v1.ExportLogsServiceRequest=(function(){function ExportLogsServiceRequest(properties){if(this.resourceLogs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportLogsServiceRequest.prototype.resourceLogs=$util.emptyArray,ExportLogsServiceRequest.create=function(properties){return new ExportLogsServiceRequest(properties)},ExportLogsServiceRequest.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceLogs!=null&&message.resourceLogs.length)for(var i=0;i<message.resourceLogs.length;++i)$root.opentelemetry.proto.logs.v1.ResourceLogs.encode(message.resourceLogs[i],writer.uint32(10).fork()).ldelim();return writer},ExportLogsServiceRequest.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportLogsServiceRequest.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceLogs&&message.resourceLogs.length||(message.resourceLogs=[]),message.resourceLogs.push($root.opentelemetry.proto.logs.v1.ResourceLogs.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ExportLogsServiceRequest.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportLogsServiceRequest.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceLogs!=null&&message.hasOwnProperty(`resourceLogs`)){if(!Array.isArray(message.resourceLogs))return`resourceLogs: array expected`;for(var i=0;i<message.resourceLogs.length;++i){var error=$root.opentelemetry.proto.logs.v1.ResourceLogs.verify(message.resourceLogs[i]);if(error)return`resourceLogs.`+error}}return null},ExportLogsServiceRequest.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest)return object;var message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;if(object.resourceLogs){if(!Array.isArray(object.resourceLogs))throw TypeError(`.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest.resourceLogs: array expected`);message.resourceLogs=[];for(var i=0;i<object.resourceLogs.length;++i){if(typeof object.resourceLogs[i]!=`object`)throw TypeError(`.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest.resourceLogs: object expected`);message.resourceLogs[i]=$root.opentelemetry.proto.logs.v1.ResourceLogs.fromObject(object.resourceLogs[i])}}return message},ExportLogsServiceRequest.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceLogs=[]),message.resourceLogs&&message.resourceLogs.length){object.resourceLogs=[];for(var j=0;j<message.resourceLogs.length;++j)object.resourceLogs[j]=$root.opentelemetry.proto.logs.v1.ResourceLogs.toObject(message.resourceLogs[j],options)}return object},ExportLogsServiceRequest.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportLogsServiceRequest.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest`},ExportLogsServiceRequest})(),v1.ExportLogsServiceResponse=(function(){function ExportLogsServiceResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportLogsServiceResponse.prototype.partialSuccess=null,ExportLogsServiceResponse.create=function(properties){return new ExportLogsServiceResponse(properties)},ExportLogsServiceResponse.encode=function(message,writer){return writer||=$Writer.create(),message.partialSuccess!=null&&Object.hasOwnProperty.call(message,`partialSuccess`)&&$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.encode(message.partialSuccess,writer.uint32(10).fork()).ldelim(),writer},ExportLogsServiceResponse.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportLogsServiceResponse.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.partialSuccess=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},ExportLogsServiceResponse.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportLogsServiceResponse.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)){var error=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.verify(message.partialSuccess);if(error)return`partialSuccess.`+error}return null},ExportLogsServiceResponse.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse)return object;var message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse;if(object.partialSuccess!=null){if(typeof object.partialSuccess!=`object`)throw TypeError(`.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse.partialSuccess: object expected`);message.partialSuccess=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.fromObject(object.partialSuccess)}return message},ExportLogsServiceResponse.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.partialSuccess=null),message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)&&(object.partialSuccess=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.toObject(message.partialSuccess,options)),object},ExportLogsServiceResponse.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportLogsServiceResponse.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse`},ExportLogsServiceResponse})(),v1.ExportLogsPartialSuccess=(function(){function ExportLogsPartialSuccess(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportLogsPartialSuccess.prototype.rejectedLogRecords=null,ExportLogsPartialSuccess.prototype.errorMessage=null,ExportLogsPartialSuccess.create=function(properties){return new ExportLogsPartialSuccess(properties)},ExportLogsPartialSuccess.encode=function(message,writer){return writer||=$Writer.create(),message.rejectedLogRecords!=null&&Object.hasOwnProperty.call(message,`rejectedLogRecords`)&&writer.uint32(8).int64(message.rejectedLogRecords),message.errorMessage!=null&&Object.hasOwnProperty.call(message,`errorMessage`)&&writer.uint32(18).string(message.errorMessage),writer},ExportLogsPartialSuccess.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportLogsPartialSuccess.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.rejectedLogRecords=reader.int64();break;case 2:message.errorMessage=reader.string();break;default:reader.skipType(tag&7);break}}return message},ExportLogsPartialSuccess.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportLogsPartialSuccess.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.rejectedLogRecords!=null&&message.hasOwnProperty(`rejectedLogRecords`)&&!$util.isInteger(message.rejectedLogRecords)&&!(message.rejectedLogRecords&&$util.isInteger(message.rejectedLogRecords.low)&&$util.isInteger(message.rejectedLogRecords.high))?`rejectedLogRecords: integer|Long expected`:message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&!$util.isString(message.errorMessage)?`errorMessage: string expected`:null},ExportLogsPartialSuccess.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess)return object;var message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess;return object.rejectedLogRecords!=null&&($util.Long?(message.rejectedLogRecords=$util.Long.fromValue(object.rejectedLogRecords)).unsigned=!1:typeof object.rejectedLogRecords==`string`?message.rejectedLogRecords=parseInt(object.rejectedLogRecords,10):typeof object.rejectedLogRecords==`number`?message.rejectedLogRecords=object.rejectedLogRecords:typeof object.rejectedLogRecords==`object`&&(message.rejectedLogRecords=new $util.LongBits(object.rejectedLogRecords.low>>>0,object.rejectedLogRecords.high>>>0).toNumber())),object.errorMessage!=null&&(message.errorMessage=String(object.errorMessage)),message},ExportLogsPartialSuccess.toObject=function(message,options){options||={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.rejectedLogRecords=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.rejectedLogRecords=options.longs===String?`0`:0;object.errorMessage=``}return message.rejectedLogRecords!=null&&message.hasOwnProperty(`rejectedLogRecords`)&&(typeof message.rejectedLogRecords==`number`?object.rejectedLogRecords=options.longs===String?String(message.rejectedLogRecords):message.rejectedLogRecords:object.rejectedLogRecords=options.longs===String?$util.Long.prototype.toString.call(message.rejectedLogRecords):options.longs===Number?new $util.LongBits(message.rejectedLogRecords.low>>>0,message.rejectedLogRecords.high>>>0).toNumber():message.rejectedLogRecords),message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&(object.errorMessage=message.errorMessage),object},ExportLogsPartialSuccess.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportLogsPartialSuccess.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess`},ExportLogsPartialSuccess})(),v1})(),logs})(),collector})(),proto.metrics=(function(){var metrics={};return metrics.v1=(function(){var v1={};return v1.MetricsData=(function(){function MetricsData(properties){if(this.resourceMetrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return MetricsData.prototype.resourceMetrics=$util.emptyArray,MetricsData.create=function(properties){return new MetricsData(properties)},MetricsData.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceMetrics!=null&&message.resourceMetrics.length)for(var i=0;i<message.resourceMetrics.length;++i)$root.opentelemetry.proto.metrics.v1.ResourceMetrics.encode(message.resourceMetrics[i],writer.uint32(10).fork()).ldelim();return writer},MetricsData.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},MetricsData.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.MetricsData;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceMetrics&&message.resourceMetrics.length||(message.resourceMetrics=[]),message.resourceMetrics.push($root.opentelemetry.proto.metrics.v1.ResourceMetrics.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},MetricsData.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},MetricsData.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceMetrics!=null&&message.hasOwnProperty(`resourceMetrics`)){if(!Array.isArray(message.resourceMetrics))return`resourceMetrics: array expected`;for(var i=0;i<message.resourceMetrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.verify(message.resourceMetrics[i]);if(error)return`resourceMetrics.`+error}}return null},MetricsData.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.MetricsData)return object;var message=new $root.opentelemetry.proto.metrics.v1.MetricsData;if(object.resourceMetrics){if(!Array.isArray(object.resourceMetrics))throw TypeError(`.opentelemetry.proto.metrics.v1.MetricsData.resourceMetrics: array expected`);message.resourceMetrics=[];for(var i=0;i<object.resourceMetrics.length;++i){if(typeof object.resourceMetrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.MetricsData.resourceMetrics: object expected`);message.resourceMetrics[i]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.fromObject(object.resourceMetrics[i])}}return message},MetricsData.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceMetrics=[]),message.resourceMetrics&&message.resourceMetrics.length){object.resourceMetrics=[];for(var j=0;j<message.resourceMetrics.length;++j)object.resourceMetrics[j]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.toObject(message.resourceMetrics[j],options)}return object},MetricsData.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},MetricsData.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.MetricsData`},MetricsData})(),v1.ResourceMetrics=(function(){function ResourceMetrics(properties){if(this.scopeMetrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ResourceMetrics.prototype.resource=null,ResourceMetrics.prototype.scopeMetrics=$util.emptyArray,ResourceMetrics.prototype.schemaUrl=null,ResourceMetrics.create=function(properties){return new ResourceMetrics(properties)},ResourceMetrics.encode=function(message,writer){if(writer||=$Writer.create(),message.resource!=null&&Object.hasOwnProperty.call(message,`resource`)&&$root.opentelemetry.proto.resource.v1.Resource.encode(message.resource,writer.uint32(10).fork()).ldelim(),message.scopeMetrics!=null&&message.scopeMetrics.length)for(var i=0;i<message.scopeMetrics.length;++i)$root.opentelemetry.proto.metrics.v1.ScopeMetrics.encode(message.scopeMetrics[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ResourceMetrics.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ResourceMetrics.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ResourceMetrics;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resource=$root.opentelemetry.proto.resource.v1.Resource.decode(reader,reader.uint32());break;case 2:message.scopeMetrics&&message.scopeMetrics.length||(message.scopeMetrics=[]),message.scopeMetrics.push($root.opentelemetry.proto.metrics.v1.ScopeMetrics.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ResourceMetrics.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ResourceMetrics.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resource!=null&&message.hasOwnProperty(`resource`)){var error=$root.opentelemetry.proto.resource.v1.Resource.verify(message.resource);if(error)return`resource.`+error}if(message.scopeMetrics!=null&&message.hasOwnProperty(`scopeMetrics`)){if(!Array.isArray(message.scopeMetrics))return`scopeMetrics: array expected`;for(var i=0;i<message.scopeMetrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ScopeMetrics.verify(message.scopeMetrics[i]);if(error)return`scopeMetrics.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ResourceMetrics.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ResourceMetrics)return object;var message=new $root.opentelemetry.proto.metrics.v1.ResourceMetrics;if(object.resource!=null){if(typeof object.resource!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ResourceMetrics.resource: object expected`);message.resource=$root.opentelemetry.proto.resource.v1.Resource.fromObject(object.resource)}if(object.scopeMetrics){if(!Array.isArray(object.scopeMetrics))throw TypeError(`.opentelemetry.proto.metrics.v1.ResourceMetrics.scopeMetrics: array expected`);message.scopeMetrics=[];for(var i=0;i<object.scopeMetrics.length;++i){if(typeof object.scopeMetrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ResourceMetrics.scopeMetrics: object expected`);message.scopeMetrics[i]=$root.opentelemetry.proto.metrics.v1.ScopeMetrics.fromObject(object.scopeMetrics[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ResourceMetrics.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.scopeMetrics=[]),options.defaults&&(object.resource=null,object.schemaUrl=``),message.resource!=null&&message.hasOwnProperty(`resource`)&&(object.resource=$root.opentelemetry.proto.resource.v1.Resource.toObject(message.resource,options)),message.scopeMetrics&&message.scopeMetrics.length){object.scopeMetrics=[];for(var j=0;j<message.scopeMetrics.length;++j)object.scopeMetrics[j]=$root.opentelemetry.proto.metrics.v1.ScopeMetrics.toObject(message.scopeMetrics[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ResourceMetrics.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ResourceMetrics.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ResourceMetrics`},ResourceMetrics})(),v1.ScopeMetrics=(function(){function ScopeMetrics(properties){if(this.metrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ScopeMetrics.prototype.scope=null,ScopeMetrics.prototype.metrics=$util.emptyArray,ScopeMetrics.prototype.schemaUrl=null,ScopeMetrics.create=function(properties){return new ScopeMetrics(properties)},ScopeMetrics.encode=function(message,writer){if(writer||=$Writer.create(),message.scope!=null&&Object.hasOwnProperty.call(message,`scope`)&&$root.opentelemetry.proto.common.v1.InstrumentationScope.encode(message.scope,writer.uint32(10).fork()).ldelim(),message.metrics!=null&&message.metrics.length)for(var i=0;i<message.metrics.length;++i)$root.opentelemetry.proto.metrics.v1.Metric.encode(message.metrics[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ScopeMetrics.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ScopeMetrics.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ScopeMetrics;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.decode(reader,reader.uint32());break;case 2:message.metrics&&message.metrics.length||(message.metrics=[]),message.metrics.push($root.opentelemetry.proto.metrics.v1.Metric.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ScopeMetrics.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ScopeMetrics.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.scope!=null&&message.hasOwnProperty(`scope`)){var error=$root.opentelemetry.proto.common.v1.InstrumentationScope.verify(message.scope);if(error)return`scope.`+error}if(message.metrics!=null&&message.hasOwnProperty(`metrics`)){if(!Array.isArray(message.metrics))return`metrics: array expected`;for(var i=0;i<message.metrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Metric.verify(message.metrics[i]);if(error)return`metrics.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ScopeMetrics.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ScopeMetrics)return object;var message=new $root.opentelemetry.proto.metrics.v1.ScopeMetrics;if(object.scope!=null){if(typeof object.scope!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ScopeMetrics.scope: object expected`);message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.fromObject(object.scope)}if(object.metrics){if(!Array.isArray(object.metrics))throw TypeError(`.opentelemetry.proto.metrics.v1.ScopeMetrics.metrics: array expected`);message.metrics=[];for(var i=0;i<object.metrics.length;++i){if(typeof object.metrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ScopeMetrics.metrics: object expected`);message.metrics[i]=$root.opentelemetry.proto.metrics.v1.Metric.fromObject(object.metrics[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ScopeMetrics.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.metrics=[]),options.defaults&&(object.scope=null,object.schemaUrl=``),message.scope!=null&&message.hasOwnProperty(`scope`)&&(object.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.toObject(message.scope,options)),message.metrics&&message.metrics.length){object.metrics=[];for(var j=0;j<message.metrics.length;++j)object.metrics[j]=$root.opentelemetry.proto.metrics.v1.Metric.toObject(message.metrics[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ScopeMetrics.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ScopeMetrics.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ScopeMetrics`},ScopeMetrics})(),v1.Metric=(function(){function Metric(properties){if(this.metadata=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}Metric.prototype.name=null,Metric.prototype.description=null,Metric.prototype.unit=null,Metric.prototype.gauge=null,Metric.prototype.sum=null,Metric.prototype.histogram=null,Metric.prototype.exponentialHistogram=null,Metric.prototype.summary=null,Metric.prototype.metadata=$util.emptyArray;var $oneOfFields;return Object.defineProperty(Metric.prototype,`data`,{get:$util.oneOfGetter($oneOfFields=[`gauge`,`sum`,`histogram`,`exponentialHistogram`,`summary`]),set:$util.oneOfSetter($oneOfFields)}),Metric.create=function(properties){return new Metric(properties)},Metric.encode=function(message,writer){if(writer||=$Writer.create(),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(10).string(message.name),message.description!=null&&Object.hasOwnProperty.call(message,`description`)&&writer.uint32(18).string(message.description),message.unit!=null&&Object.hasOwnProperty.call(message,`unit`)&&writer.uint32(26).string(message.unit),message.gauge!=null&&Object.hasOwnProperty.call(message,`gauge`)&&$root.opentelemetry.proto.metrics.v1.Gauge.encode(message.gauge,writer.uint32(42).fork()).ldelim(),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&$root.opentelemetry.proto.metrics.v1.Sum.encode(message.sum,writer.uint32(58).fork()).ldelim(),message.histogram!=null&&Object.hasOwnProperty.call(message,`histogram`)&&$root.opentelemetry.proto.metrics.v1.Histogram.encode(message.histogram,writer.uint32(74).fork()).ldelim(),message.exponentialHistogram!=null&&Object.hasOwnProperty.call(message,`exponentialHistogram`)&&$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.encode(message.exponentialHistogram,writer.uint32(82).fork()).ldelim(),message.summary!=null&&Object.hasOwnProperty.call(message,`summary`)&&$root.opentelemetry.proto.metrics.v1.Summary.encode(message.summary,writer.uint32(90).fork()).ldelim(),message.metadata!=null&&message.metadata.length)for(var i=0;i<message.metadata.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.metadata[i],writer.uint32(98).fork()).ldelim();return writer},Metric.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Metric.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Metric;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.name=reader.string();break;case 2:message.description=reader.string();break;case 3:message.unit=reader.string();break;case 5:message.gauge=$root.opentelemetry.proto.metrics.v1.Gauge.decode(reader,reader.uint32());break;case 7:message.sum=$root.opentelemetry.proto.metrics.v1.Sum.decode(reader,reader.uint32());break;case 9:message.histogram=$root.opentelemetry.proto.metrics.v1.Histogram.decode(reader,reader.uint32());break;case 10:message.exponentialHistogram=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.decode(reader,reader.uint32());break;case 11:message.summary=$root.opentelemetry.proto.metrics.v1.Summary.decode(reader,reader.uint32());break;case 12:message.metadata&&message.metadata.length||(message.metadata=[]),message.metadata.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Metric.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Metric.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.description!=null&&message.hasOwnProperty(`description`)&&!$util.isString(message.description))return`description: string expected`;if(message.unit!=null&&message.hasOwnProperty(`unit`)&&!$util.isString(message.unit))return`unit: string expected`;if(message.gauge!=null&&message.hasOwnProperty(`gauge`)){properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Gauge.verify(message.gauge);if(error)return`gauge.`+error}if(message.sum!=null&&message.hasOwnProperty(`sum`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Sum.verify(message.sum);if(error)return`sum.`+error}if(message.histogram!=null&&message.hasOwnProperty(`histogram`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Histogram.verify(message.histogram);if(error)return`histogram.`+error}if(message.exponentialHistogram!=null&&message.hasOwnProperty(`exponentialHistogram`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.verify(message.exponentialHistogram);if(error)return`exponentialHistogram.`+error}if(message.summary!=null&&message.hasOwnProperty(`summary`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Summary.verify(message.summary);if(error)return`summary.`+error}if(message.metadata!=null&&message.hasOwnProperty(`metadata`)){if(!Array.isArray(message.metadata))return`metadata: array expected`;for(var i=0;i<message.metadata.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.metadata[i]);if(error)return`metadata.`+error}}return null},Metric.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Metric)return object;var message=new $root.opentelemetry.proto.metrics.v1.Metric;if(object.name!=null&&(message.name=String(object.name)),object.description!=null&&(message.description=String(object.description)),object.unit!=null&&(message.unit=String(object.unit)),object.gauge!=null){if(typeof object.gauge!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.gauge: object expected`);message.gauge=$root.opentelemetry.proto.metrics.v1.Gauge.fromObject(object.gauge)}if(object.sum!=null){if(typeof object.sum!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.sum: object expected`);message.sum=$root.opentelemetry.proto.metrics.v1.Sum.fromObject(object.sum)}if(object.histogram!=null){if(typeof object.histogram!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.histogram: object expected`);message.histogram=$root.opentelemetry.proto.metrics.v1.Histogram.fromObject(object.histogram)}if(object.exponentialHistogram!=null){if(typeof object.exponentialHistogram!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.exponentialHistogram: object expected`);message.exponentialHistogram=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.fromObject(object.exponentialHistogram)}if(object.summary!=null){if(typeof object.summary!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.summary: object expected`);message.summary=$root.opentelemetry.proto.metrics.v1.Summary.fromObject(object.summary)}if(object.metadata){if(!Array.isArray(object.metadata))throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.metadata: array expected`);message.metadata=[];for(var i=0;i<object.metadata.length;++i){if(typeof object.metadata[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.metadata: object expected`);message.metadata[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.metadata[i])}}return message},Metric.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.metadata=[]),options.defaults&&(object.name=``,object.description=``,object.unit=``),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.description!=null&&message.hasOwnProperty(`description`)&&(object.description=message.description),message.unit!=null&&message.hasOwnProperty(`unit`)&&(object.unit=message.unit),message.gauge!=null&&message.hasOwnProperty(`gauge`)&&(object.gauge=$root.opentelemetry.proto.metrics.v1.Gauge.toObject(message.gauge,options),options.oneofs&&(object.data=`gauge`)),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=$root.opentelemetry.proto.metrics.v1.Sum.toObject(message.sum,options),options.oneofs&&(object.data=`sum`)),message.histogram!=null&&message.hasOwnProperty(`histogram`)&&(object.histogram=$root.opentelemetry.proto.metrics.v1.Histogram.toObject(message.histogram,options),options.oneofs&&(object.data=`histogram`)),message.exponentialHistogram!=null&&message.hasOwnProperty(`exponentialHistogram`)&&(object.exponentialHistogram=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.toObject(message.exponentialHistogram,options),options.oneofs&&(object.data=`exponentialHistogram`)),message.summary!=null&&message.hasOwnProperty(`summary`)&&(object.summary=$root.opentelemetry.proto.metrics.v1.Summary.toObject(message.summary,options),options.oneofs&&(object.data=`summary`)),message.metadata&&message.metadata.length){object.metadata=[];for(var j=0;j<message.metadata.length;++j)object.metadata[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.metadata[j],options)}return object},Metric.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Metric.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Metric`},Metric})(),v1.Gauge=(function(){function Gauge(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Gauge.prototype.dataPoints=$util.emptyArray,Gauge.create=function(properties){return new Gauge(properties)},Gauge.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.NumberDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return writer},Gauge.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Gauge.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Gauge;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.NumberDataPoint.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Gauge.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Gauge.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}return null},Gauge.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Gauge)return object;var message=new $root.opentelemetry.proto.metrics.v1.Gauge;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Gauge.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Gauge.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.fromObject(object.dataPoints[i])}}return message},Gauge.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.toObject(message.dataPoints[j],options)}return object},Gauge.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Gauge.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Gauge`},Gauge})(),v1.Sum=(function(){function Sum(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Sum.prototype.dataPoints=$util.emptyArray,Sum.prototype.aggregationTemporality=null,Sum.prototype.isMonotonic=null,Sum.create=function(properties){return new Sum(properties)},Sum.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.NumberDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return message.aggregationTemporality!=null&&Object.hasOwnProperty.call(message,`aggregationTemporality`)&&writer.uint32(16).int32(message.aggregationTemporality),message.isMonotonic!=null&&Object.hasOwnProperty.call(message,`isMonotonic`)&&writer.uint32(24).bool(message.isMonotonic),writer},Sum.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Sum.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Sum;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.NumberDataPoint.decode(reader,reader.uint32()));break;case 2:message.aggregationTemporality=reader.int32();break;case 3:message.isMonotonic=reader.bool();break;default:reader.skipType(tag&7);break}}return message},Sum.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Sum.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}if(message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`))switch(message.aggregationTemporality){default:return`aggregationTemporality: enum value expected`;case 0:case 1:case 2:break}return message.isMonotonic!=null&&message.hasOwnProperty(`isMonotonic`)&&typeof message.isMonotonic!=`boolean`?`isMonotonic: boolean expected`:null},Sum.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Sum)return object;var message=new $root.opentelemetry.proto.metrics.v1.Sum;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Sum.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Sum.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.fromObject(object.dataPoints[i])}}switch(object.aggregationTemporality){default:if(typeof object.aggregationTemporality==`number`){message.aggregationTemporality=object.aggregationTemporality;break}break;case`AGGREGATION_TEMPORALITY_UNSPECIFIED`:case 0:message.aggregationTemporality=0;break;case`AGGREGATION_TEMPORALITY_DELTA`:case 1:message.aggregationTemporality=1;break;case`AGGREGATION_TEMPORALITY_CUMULATIVE`:case 2:message.aggregationTemporality=2;break}return object.isMonotonic!=null&&(message.isMonotonic=!!object.isMonotonic),message},Sum.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),options.defaults&&(object.aggregationTemporality=options.enums===String?`AGGREGATION_TEMPORALITY_UNSPECIFIED`:0,object.isMonotonic=!1),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.toObject(message.dataPoints[j],options)}return message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`)&&(object.aggregationTemporality=options.enums===String?$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]===void 0?message.aggregationTemporality:$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]:message.aggregationTemporality),message.isMonotonic!=null&&message.hasOwnProperty(`isMonotonic`)&&(object.isMonotonic=message.isMonotonic),object},Sum.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Sum.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Sum`},Sum})(),v1.Histogram=(function(){function Histogram(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Histogram.prototype.dataPoints=$util.emptyArray,Histogram.prototype.aggregationTemporality=null,Histogram.create=function(properties){return new Histogram(properties)},Histogram.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return message.aggregationTemporality!=null&&Object.hasOwnProperty.call(message,`aggregationTemporality`)&&writer.uint32(16).int32(message.aggregationTemporality),writer},Histogram.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Histogram.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Histogram;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.HistogramDataPoint.decode(reader,reader.uint32()));break;case 2:message.aggregationTemporality=reader.int32();break;default:reader.skipType(tag&7);break}}return message},Histogram.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Histogram.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}if(message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`))switch(message.aggregationTemporality){default:return`aggregationTemporality: enum value expected`;case 0:case 1:case 2:break}return null},Histogram.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Histogram)return object;var message=new $root.opentelemetry.proto.metrics.v1.Histogram;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Histogram.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Histogram.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.fromObject(object.dataPoints[i])}}switch(object.aggregationTemporality){default:if(typeof object.aggregationTemporality==`number`){message.aggregationTemporality=object.aggregationTemporality;break}break;case`AGGREGATION_TEMPORALITY_UNSPECIFIED`:case 0:message.aggregationTemporality=0;break;case`AGGREGATION_TEMPORALITY_DELTA`:case 1:message.aggregationTemporality=1;break;case`AGGREGATION_TEMPORALITY_CUMULATIVE`:case 2:message.aggregationTemporality=2;break}return message},Histogram.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),options.defaults&&(object.aggregationTemporality=options.enums===String?`AGGREGATION_TEMPORALITY_UNSPECIFIED`:0),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.toObject(message.dataPoints[j],options)}return message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`)&&(object.aggregationTemporality=options.enums===String?$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]===void 0?message.aggregationTemporality:$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]:message.aggregationTemporality),object},Histogram.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Histogram.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Histogram`},Histogram})(),v1.ExponentialHistogram=(function(){function ExponentialHistogram(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExponentialHistogram.prototype.dataPoints=$util.emptyArray,ExponentialHistogram.prototype.aggregationTemporality=null,ExponentialHistogram.create=function(properties){return new ExponentialHistogram(properties)},ExponentialHistogram.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return message.aggregationTemporality!=null&&Object.hasOwnProperty.call(message,`aggregationTemporality`)&&writer.uint32(16).int32(message.aggregationTemporality),writer},ExponentialHistogram.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExponentialHistogram.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogram;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.decode(reader,reader.uint32()));break;case 2:message.aggregationTemporality=reader.int32();break;default:reader.skipType(tag&7);break}}return message},ExponentialHistogram.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExponentialHistogram.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}if(message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`))switch(message.aggregationTemporality){default:return`aggregationTemporality: enum value expected`;case 0:case 1:case 2:break}return null},ExponentialHistogram.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ExponentialHistogram)return object;var message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogram;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogram.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogram.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.fromObject(object.dataPoints[i])}}switch(object.aggregationTemporality){default:if(typeof object.aggregationTemporality==`number`){message.aggregationTemporality=object.aggregationTemporality;break}break;case`AGGREGATION_TEMPORALITY_UNSPECIFIED`:case 0:message.aggregationTemporality=0;break;case`AGGREGATION_TEMPORALITY_DELTA`:case 1:message.aggregationTemporality=1;break;case`AGGREGATION_TEMPORALITY_CUMULATIVE`:case 2:message.aggregationTemporality=2;break}return message},ExponentialHistogram.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),options.defaults&&(object.aggregationTemporality=options.enums===String?`AGGREGATION_TEMPORALITY_UNSPECIFIED`:0),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.toObject(message.dataPoints[j],options)}return message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`)&&(object.aggregationTemporality=options.enums===String?$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]===void 0?message.aggregationTemporality:$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]:message.aggregationTemporality),object},ExponentialHistogram.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExponentialHistogram.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ExponentialHistogram`},ExponentialHistogram})(),v1.Summary=(function(){function Summary(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Summary.prototype.dataPoints=$util.emptyArray,Summary.create=function(properties){return new Summary(properties)},Summary.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return writer},Summary.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Summary.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Summary;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.SummaryDataPoint.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Summary.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Summary.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}return null},Summary.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Summary)return object;var message=new $root.opentelemetry.proto.metrics.v1.Summary;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Summary.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Summary.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.fromObject(object.dataPoints[i])}}return message},Summary.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.toObject(message.dataPoints[j],options)}return object},Summary.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Summary.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Summary`},Summary})(),v1.AggregationTemporality=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`AGGREGATION_TEMPORALITY_UNSPECIFIED`]=0,values[valuesById[1]=`AGGREGATION_TEMPORALITY_DELTA`]=1,values[valuesById[2]=`AGGREGATION_TEMPORALITY_CUMULATIVE`]=2,values})(),v1.DataPointFlags=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`DATA_POINT_FLAGS_DO_NOT_USE`]=0,values[valuesById[1]=`DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK`]=1,values})(),v1.NumberDataPoint=(function(){function NumberDataPoint(properties){if(this.attributes=[],this.exemplars=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}NumberDataPoint.prototype.attributes=$util.emptyArray,NumberDataPoint.prototype.startTimeUnixNano=null,NumberDataPoint.prototype.timeUnixNano=null,NumberDataPoint.prototype.asDouble=null,NumberDataPoint.prototype.asInt=null,NumberDataPoint.prototype.exemplars=$util.emptyArray,NumberDataPoint.prototype.flags=null;var $oneOfFields;return Object.defineProperty(NumberDataPoint.prototype,`value`,{get:$util.oneOfGetter($oneOfFields=[`asDouble`,`asInt`]),set:$util.oneOfSetter($oneOfFields)}),NumberDataPoint.create=function(properties){return new NumberDataPoint(properties)},NumberDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.asDouble!=null&&Object.hasOwnProperty.call(message,`asDouble`)&&writer.uint32(33).double(message.asDouble),message.exemplars!=null&&message.exemplars.length)for(var i=0;i<message.exemplars.length;++i)$root.opentelemetry.proto.metrics.v1.Exemplar.encode(message.exemplars[i],writer.uint32(42).fork()).ldelim();if(message.asInt!=null&&Object.hasOwnProperty.call(message,`asInt`)&&writer.uint32(49).sfixed64(message.asInt),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(58).fork()).ldelim();return message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(64).uint32(message.flags),writer},NumberDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},NumberDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.NumberDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 7:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.asDouble=reader.double();break;case 6:message.asInt=reader.sfixed64();break;case 5:message.exemplars&&message.exemplars.length||(message.exemplars=[]),message.exemplars.push($root.opentelemetry.proto.metrics.v1.Exemplar.decode(reader,reader.uint32()));break;case 8:message.flags=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},NumberDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},NumberDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(properties.value=1,typeof message.asDouble!=`number`))return`asDouble: number expected`;if(message.asInt!=null&&message.hasOwnProperty(`asInt`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!$util.isInteger(message.asInt)&&!(message.asInt&&$util.isInteger(message.asInt.low)&&$util.isInteger(message.asInt.high)))return`asInt: integer|Long expected`}if(message.exemplars!=null&&message.hasOwnProperty(`exemplars`)){if(!Array.isArray(message.exemplars))return`exemplars: array expected`;for(var i=0;i<message.exemplars.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Exemplar.verify(message.exemplars[i]);if(error)return`exemplars.`+error}}return message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:null},NumberDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.NumberDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.NumberDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.asDouble!=null&&(message.asDouble=Number(object.asDouble)),object.asInt!=null&&($util.Long?(message.asInt=$util.Long.fromValue(object.asInt)).unsigned=!1:typeof object.asInt==`string`?message.asInt=parseInt(object.asInt,10):typeof object.asInt==`number`?message.asInt=object.asInt:typeof object.asInt==`object`&&(message.asInt=new $util.LongBits(object.asInt.low>>>0,object.asInt.high>>>0).toNumber())),object.exemplars){if(!Array.isArray(object.exemplars))throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.exemplars: array expected`);message.exemplars=[];for(var i=0;i<object.exemplars.length;++i){if(typeof object.exemplars[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.exemplars: object expected`);message.exemplars[i]=$root.opentelemetry.proto.metrics.v1.Exemplar.fromObject(object.exemplars[i])}}return object.flags!=null&&(message.flags=object.flags>>>0),message},NumberDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.exemplars=[],object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;object.flags=0}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(object.asDouble=options.json&&!isFinite(message.asDouble)?String(message.asDouble):message.asDouble,options.oneofs&&(object.value=`asDouble`)),message.exemplars&&message.exemplars.length){object.exemplars=[];for(var j=0;j<message.exemplars.length;++j)object.exemplars[j]=$root.opentelemetry.proto.metrics.v1.Exemplar.toObject(message.exemplars[j],options)}if(message.asInt!=null&&message.hasOwnProperty(`asInt`)&&(typeof message.asInt==`number`?object.asInt=options.longs===String?String(message.asInt):message.asInt:object.asInt=options.longs===String?$util.Long.prototype.toString.call(message.asInt):options.longs===Number?new $util.LongBits(message.asInt.low>>>0,message.asInt.high>>>0).toNumber():message.asInt,options.oneofs&&(object.value=`asInt`)),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},NumberDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},NumberDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.NumberDataPoint`},NumberDataPoint})(),v1.HistogramDataPoint=(function(){function HistogramDataPoint(properties){if(this.attributes=[],this.bucketCounts=[],this.explicitBounds=[],this.exemplars=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}HistogramDataPoint.prototype.attributes=$util.emptyArray,HistogramDataPoint.prototype.startTimeUnixNano=null,HistogramDataPoint.prototype.timeUnixNano=null,HistogramDataPoint.prototype.count=null,HistogramDataPoint.prototype.sum=null,HistogramDataPoint.prototype.bucketCounts=$util.emptyArray,HistogramDataPoint.prototype.explicitBounds=$util.emptyArray,HistogramDataPoint.prototype.exemplars=$util.emptyArray,HistogramDataPoint.prototype.flags=null,HistogramDataPoint.prototype.min=null,HistogramDataPoint.prototype.max=null;var $oneOfFields;return Object.defineProperty(HistogramDataPoint.prototype,`_sum`,{get:$util.oneOfGetter($oneOfFields=[`sum`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(HistogramDataPoint.prototype,`_min`,{get:$util.oneOfGetter($oneOfFields=[`min`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(HistogramDataPoint.prototype,`_max`,{get:$util.oneOfGetter($oneOfFields=[`max`]),set:$util.oneOfSetter($oneOfFields)}),HistogramDataPoint.create=function(properties){return new HistogramDataPoint(properties)},HistogramDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.count!=null&&Object.hasOwnProperty.call(message,`count`)&&writer.uint32(33).fixed64(message.count),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&writer.uint32(41).double(message.sum),message.bucketCounts!=null&&message.bucketCounts.length){writer.uint32(50).fork();for(var i=0;i<message.bucketCounts.length;++i)writer.fixed64(message.bucketCounts[i]);writer.ldelim()}if(message.explicitBounds!=null&&message.explicitBounds.length){writer.uint32(58).fork();for(var i=0;i<message.explicitBounds.length;++i)writer.double(message.explicitBounds[i]);writer.ldelim()}if(message.exemplars!=null&&message.exemplars.length)for(var i=0;i<message.exemplars.length;++i)$root.opentelemetry.proto.metrics.v1.Exemplar.encode(message.exemplars[i],writer.uint32(66).fork()).ldelim();if(message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(74).fork()).ldelim();return message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(80).uint32(message.flags),message.min!=null&&Object.hasOwnProperty.call(message,`min`)&&writer.uint32(89).double(message.min),message.max!=null&&Object.hasOwnProperty.call(message,`max`)&&writer.uint32(97).double(message.max),writer},HistogramDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},HistogramDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.HistogramDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 9:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.count=reader.fixed64();break;case 5:message.sum=reader.double();break;case 6:if(message.bucketCounts&&message.bucketCounts.length||(message.bucketCounts=[]),(tag&7)==2)for(var end2=reader.uint32()+reader.pos;reader.pos<end2;)message.bucketCounts.push(reader.fixed64());else message.bucketCounts.push(reader.fixed64());break;case 7:if(message.explicitBounds&&message.explicitBounds.length||(message.explicitBounds=[]),(tag&7)==2)for(var end2=reader.uint32()+reader.pos;reader.pos<end2;)message.explicitBounds.push(reader.double());else message.explicitBounds.push(reader.double());break;case 8:message.exemplars&&message.exemplars.length||(message.exemplars=[]),message.exemplars.push($root.opentelemetry.proto.metrics.v1.Exemplar.decode(reader,reader.uint32()));break;case 10:message.flags=reader.uint32();break;case 11:message.min=reader.double();break;case 12:message.max=reader.double();break;default:reader.skipType(tag&7);break}}return message},HistogramDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},HistogramDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.count!=null&&message.hasOwnProperty(`count`)&&!$util.isInteger(message.count)&&!(message.count&&$util.isInteger(message.count.low)&&$util.isInteger(message.count.high)))return`count: integer|Long expected`;if(message.sum!=null&&message.hasOwnProperty(`sum`)&&(properties._sum=1,typeof message.sum!=`number`))return`sum: number expected`;if(message.bucketCounts!=null&&message.hasOwnProperty(`bucketCounts`)){if(!Array.isArray(message.bucketCounts))return`bucketCounts: array expected`;for(var i=0;i<message.bucketCounts.length;++i)if(!$util.isInteger(message.bucketCounts[i])&&!(message.bucketCounts[i]&&$util.isInteger(message.bucketCounts[i].low)&&$util.isInteger(message.bucketCounts[i].high)))return`bucketCounts: integer|Long[] expected`}if(message.explicitBounds!=null&&message.hasOwnProperty(`explicitBounds`)){if(!Array.isArray(message.explicitBounds))return`explicitBounds: array expected`;for(var i=0;i<message.explicitBounds.length;++i)if(typeof message.explicitBounds[i]!=`number`)return`explicitBounds: number[] expected`}if(message.exemplars!=null&&message.hasOwnProperty(`exemplars`)){if(!Array.isArray(message.exemplars))return`exemplars: array expected`;for(var i=0;i<message.exemplars.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Exemplar.verify(message.exemplars[i]);if(error)return`exemplars.`+error}}return message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:message.min!=null&&message.hasOwnProperty(`min`)&&(properties._min=1,typeof message.min!=`number`)?`min: number expected`:message.max!=null&&message.hasOwnProperty(`max`)&&(properties._max=1,typeof message.max!=`number`)?`max: number expected`:null},HistogramDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.HistogramDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.HistogramDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.count!=null&&($util.Long?(message.count=$util.Long.fromValue(object.count)).unsigned=!1:typeof object.count==`string`?message.count=parseInt(object.count,10):typeof object.count==`number`?message.count=object.count:typeof object.count==`object`&&(message.count=new $util.LongBits(object.count.low>>>0,object.count.high>>>0).toNumber())),object.sum!=null&&(message.sum=Number(object.sum)),object.bucketCounts){if(!Array.isArray(object.bucketCounts))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.bucketCounts: array expected`);message.bucketCounts=[];for(var i=0;i<object.bucketCounts.length;++i)$util.Long?(message.bucketCounts[i]=$util.Long.fromValue(object.bucketCounts[i])).unsigned=!1:typeof object.bucketCounts[i]==`string`?message.bucketCounts[i]=parseInt(object.bucketCounts[i],10):typeof object.bucketCounts[i]==`number`?message.bucketCounts[i]=object.bucketCounts[i]:typeof object.bucketCounts[i]==`object`&&(message.bucketCounts[i]=new $util.LongBits(object.bucketCounts[i].low>>>0,object.bucketCounts[i].high>>>0).toNumber())}if(object.explicitBounds){if(!Array.isArray(object.explicitBounds))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.explicitBounds: array expected`);message.explicitBounds=[];for(var i=0;i<object.explicitBounds.length;++i)message.explicitBounds[i]=Number(object.explicitBounds[i])}if(object.exemplars){if(!Array.isArray(object.exemplars))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.exemplars: array expected`);message.exemplars=[];for(var i=0;i<object.exemplars.length;++i){if(typeof object.exemplars[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.exemplars: object expected`);message.exemplars[i]=$root.opentelemetry.proto.metrics.v1.Exemplar.fromObject(object.exemplars[i])}}return object.flags!=null&&(message.flags=object.flags>>>0),object.min!=null&&(message.min=Number(object.min)),object.max!=null&&(message.max=Number(object.max)),message},HistogramDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.bucketCounts=[],object.explicitBounds=[],object.exemplars=[],object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.count=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.count=options.longs===String?`0`:0;object.flags=0}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.count!=null&&message.hasOwnProperty(`count`)&&(typeof message.count==`number`?object.count=options.longs===String?String(message.count):message.count:object.count=options.longs===String?$util.Long.prototype.toString.call(message.count):options.longs===Number?new $util.LongBits(message.count.low>>>0,message.count.high>>>0).toNumber():message.count),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=options.json&&!isFinite(message.sum)?String(message.sum):message.sum,options.oneofs&&(object._sum=`sum`)),message.bucketCounts&&message.bucketCounts.length){object.bucketCounts=[];for(var j=0;j<message.bucketCounts.length;++j)typeof message.bucketCounts[j]==`number`?object.bucketCounts[j]=options.longs===String?String(message.bucketCounts[j]):message.bucketCounts[j]:object.bucketCounts[j]=options.longs===String?$util.Long.prototype.toString.call(message.bucketCounts[j]):options.longs===Number?new $util.LongBits(message.bucketCounts[j].low>>>0,message.bucketCounts[j].high>>>0).toNumber():message.bucketCounts[j]}if(message.explicitBounds&&message.explicitBounds.length){object.explicitBounds=[];for(var j=0;j<message.explicitBounds.length;++j)object.explicitBounds[j]=options.json&&!isFinite(message.explicitBounds[j])?String(message.explicitBounds[j]):message.explicitBounds[j]}if(message.exemplars&&message.exemplars.length){object.exemplars=[];for(var j=0;j<message.exemplars.length;++j)object.exemplars[j]=$root.opentelemetry.proto.metrics.v1.Exemplar.toObject(message.exemplars[j],options)}if(message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),message.min!=null&&message.hasOwnProperty(`min`)&&(object.min=options.json&&!isFinite(message.min)?String(message.min):message.min,options.oneofs&&(object._min=`min`)),message.max!=null&&message.hasOwnProperty(`max`)&&(object.max=options.json&&!isFinite(message.max)?String(message.max):message.max,options.oneofs&&(object._max=`max`)),object},HistogramDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},HistogramDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.HistogramDataPoint`},HistogramDataPoint})(),v1.ExponentialHistogramDataPoint=(function(){function ExponentialHistogramDataPoint(properties){if(this.attributes=[],this.exemplars=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}ExponentialHistogramDataPoint.prototype.attributes=$util.emptyArray,ExponentialHistogramDataPoint.prototype.startTimeUnixNano=null,ExponentialHistogramDataPoint.prototype.timeUnixNano=null,ExponentialHistogramDataPoint.prototype.count=null,ExponentialHistogramDataPoint.prototype.sum=null,ExponentialHistogramDataPoint.prototype.scale=null,ExponentialHistogramDataPoint.prototype.zeroCount=null,ExponentialHistogramDataPoint.prototype.positive=null,ExponentialHistogramDataPoint.prototype.negative=null,ExponentialHistogramDataPoint.prototype.flags=null,ExponentialHistogramDataPoint.prototype.exemplars=$util.emptyArray,ExponentialHistogramDataPoint.prototype.min=null,ExponentialHistogramDataPoint.prototype.max=null,ExponentialHistogramDataPoint.prototype.zeroThreshold=null;var $oneOfFields;return Object.defineProperty(ExponentialHistogramDataPoint.prototype,`_sum`,{get:$util.oneOfGetter($oneOfFields=[`sum`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(ExponentialHistogramDataPoint.prototype,`_min`,{get:$util.oneOfGetter($oneOfFields=[`min`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(ExponentialHistogramDataPoint.prototype,`_max`,{get:$util.oneOfGetter($oneOfFields=[`max`]),set:$util.oneOfSetter($oneOfFields)}),ExponentialHistogramDataPoint.create=function(properties){return new ExponentialHistogramDataPoint(properties)},ExponentialHistogramDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(10).fork()).ldelim();if(message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.count!=null&&Object.hasOwnProperty.call(message,`count`)&&writer.uint32(33).fixed64(message.count),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&writer.uint32(41).double(message.sum),message.scale!=null&&Object.hasOwnProperty.call(message,`scale`)&&writer.uint32(48).sint32(message.scale),message.zeroCount!=null&&Object.hasOwnProperty.call(message,`zeroCount`)&&writer.uint32(57).fixed64(message.zeroCount),message.positive!=null&&Object.hasOwnProperty.call(message,`positive`)&&$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.encode(message.positive,writer.uint32(66).fork()).ldelim(),message.negative!=null&&Object.hasOwnProperty.call(message,`negative`)&&$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.encode(message.negative,writer.uint32(74).fork()).ldelim(),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(80).uint32(message.flags),message.exemplars!=null&&message.exemplars.length)for(var i=0;i<message.exemplars.length;++i)$root.opentelemetry.proto.metrics.v1.Exemplar.encode(message.exemplars[i],writer.uint32(90).fork()).ldelim();return message.min!=null&&Object.hasOwnProperty.call(message,`min`)&&writer.uint32(97).double(message.min),message.max!=null&&Object.hasOwnProperty.call(message,`max`)&&writer.uint32(105).double(message.max),message.zeroThreshold!=null&&Object.hasOwnProperty.call(message,`zeroThreshold`)&&writer.uint32(113).double(message.zeroThreshold),writer},ExponentialHistogramDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExponentialHistogramDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.count=reader.fixed64();break;case 5:message.sum=reader.double();break;case 6:message.scale=reader.sint32();break;case 7:message.zeroCount=reader.fixed64();break;case 8:message.positive=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.decode(reader,reader.uint32());break;case 9:message.negative=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.decode(reader,reader.uint32());break;case 10:message.flags=reader.uint32();break;case 11:message.exemplars&&message.exemplars.length||(message.exemplars=[]),message.exemplars.push($root.opentelemetry.proto.metrics.v1.Exemplar.decode(reader,reader.uint32()));break;case 12:message.min=reader.double();break;case 13:message.max=reader.double();break;case 14:message.zeroThreshold=reader.double();break;default:reader.skipType(tag&7);break}}return message},ExponentialHistogramDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExponentialHistogramDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.count!=null&&message.hasOwnProperty(`count`)&&!$util.isInteger(message.count)&&!(message.count&&$util.isInteger(message.count.low)&&$util.isInteger(message.count.high)))return`count: integer|Long expected`;if(message.sum!=null&&message.hasOwnProperty(`sum`)&&(properties._sum=1,typeof message.sum!=`number`))return`sum: number expected`;if(message.scale!=null&&message.hasOwnProperty(`scale`)&&!$util.isInteger(message.scale))return`scale: integer expected`;if(message.zeroCount!=null&&message.hasOwnProperty(`zeroCount`)&&!$util.isInteger(message.zeroCount)&&!(message.zeroCount&&$util.isInteger(message.zeroCount.low)&&$util.isInteger(message.zeroCount.high)))return`zeroCount: integer|Long expected`;if(message.positive!=null&&message.hasOwnProperty(`positive`)){var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.verify(message.positive);if(error)return`positive.`+error}if(message.negative!=null&&message.hasOwnProperty(`negative`)){var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.verify(message.negative);if(error)return`negative.`+error}if(message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags))return`flags: integer expected`;if(message.exemplars!=null&&message.hasOwnProperty(`exemplars`)){if(!Array.isArray(message.exemplars))return`exemplars: array expected`;for(var i=0;i<message.exemplars.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Exemplar.verify(message.exemplars[i]);if(error)return`exemplars.`+error}}return message.min!=null&&message.hasOwnProperty(`min`)&&(properties._min=1,typeof message.min!=`number`)?`min: number expected`:message.max!=null&&message.hasOwnProperty(`max`)&&(properties._max=1,typeof message.max!=`number`)?`max: number expected`:message.zeroThreshold!=null&&message.hasOwnProperty(`zeroThreshold`)&&typeof message.zeroThreshold!=`number`?`zeroThreshold: number expected`:null},ExponentialHistogramDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.count!=null&&($util.Long?(message.count=$util.Long.fromValue(object.count)).unsigned=!1:typeof object.count==`string`?message.count=parseInt(object.count,10):typeof object.count==`number`?message.count=object.count:typeof object.count==`object`&&(message.count=new $util.LongBits(object.count.low>>>0,object.count.high>>>0).toNumber())),object.sum!=null&&(message.sum=Number(object.sum)),object.scale!=null&&(message.scale=object.scale|0),object.zeroCount!=null&&($util.Long?(message.zeroCount=$util.Long.fromValue(object.zeroCount)).unsigned=!1:typeof object.zeroCount==`string`?message.zeroCount=parseInt(object.zeroCount,10):typeof object.zeroCount==`number`?message.zeroCount=object.zeroCount:typeof object.zeroCount==`object`&&(message.zeroCount=new $util.LongBits(object.zeroCount.low>>>0,object.zeroCount.high>>>0).toNumber())),object.positive!=null){if(typeof object.positive!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.positive: object expected`);message.positive=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.fromObject(object.positive)}if(object.negative!=null){if(typeof object.negative!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.negative: object expected`);message.negative=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.fromObject(object.negative)}if(object.flags!=null&&(message.flags=object.flags>>>0),object.exemplars){if(!Array.isArray(object.exemplars))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.exemplars: array expected`);message.exemplars=[];for(var i=0;i<object.exemplars.length;++i){if(typeof object.exemplars[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.exemplars: object expected`);message.exemplars[i]=$root.opentelemetry.proto.metrics.v1.Exemplar.fromObject(object.exemplars[i])}}return object.min!=null&&(message.min=Number(object.min)),object.max!=null&&(message.max=Number(object.max)),object.zeroThreshold!=null&&(message.zeroThreshold=Number(object.zeroThreshold)),message},ExponentialHistogramDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[],object.exemplars=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.count=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.count=options.longs===String?`0`:0;if(object.scale=0,$util.Long){var long=new $util.Long(0,0,!1);object.zeroCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.zeroCount=options.longs===String?`0`:0;object.positive=null,object.negative=null,object.flags=0,object.zeroThreshold=0}if(message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.count!=null&&message.hasOwnProperty(`count`)&&(typeof message.count==`number`?object.count=options.longs===String?String(message.count):message.count:object.count=options.longs===String?$util.Long.prototype.toString.call(message.count):options.longs===Number?new $util.LongBits(message.count.low>>>0,message.count.high>>>0).toNumber():message.count),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=options.json&&!isFinite(message.sum)?String(message.sum):message.sum,options.oneofs&&(object._sum=`sum`)),message.scale!=null&&message.hasOwnProperty(`scale`)&&(object.scale=message.scale),message.zeroCount!=null&&message.hasOwnProperty(`zeroCount`)&&(typeof message.zeroCount==`number`?object.zeroCount=options.longs===String?String(message.zeroCount):message.zeroCount:object.zeroCount=options.longs===String?$util.Long.prototype.toString.call(message.zeroCount):options.longs===Number?new $util.LongBits(message.zeroCount.low>>>0,message.zeroCount.high>>>0).toNumber():message.zeroCount),message.positive!=null&&message.hasOwnProperty(`positive`)&&(object.positive=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.toObject(message.positive,options)),message.negative!=null&&message.hasOwnProperty(`negative`)&&(object.negative=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.toObject(message.negative,options)),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),message.exemplars&&message.exemplars.length){object.exemplars=[];for(var j=0;j<message.exemplars.length;++j)object.exemplars[j]=$root.opentelemetry.proto.metrics.v1.Exemplar.toObject(message.exemplars[j],options)}return message.min!=null&&message.hasOwnProperty(`min`)&&(object.min=options.json&&!isFinite(message.min)?String(message.min):message.min,options.oneofs&&(object._min=`min`)),message.max!=null&&message.hasOwnProperty(`max`)&&(object.max=options.json&&!isFinite(message.max)?String(message.max):message.max,options.oneofs&&(object._max=`max`)),message.zeroThreshold!=null&&message.hasOwnProperty(`zeroThreshold`)&&(object.zeroThreshold=options.json&&!isFinite(message.zeroThreshold)?String(message.zeroThreshold):message.zeroThreshold),object},ExponentialHistogramDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExponentialHistogramDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint`},ExponentialHistogramDataPoint.Buckets=(function(){function Buckets(properties){if(this.bucketCounts=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Buckets.prototype.offset=null,Buckets.prototype.bucketCounts=$util.emptyArray,Buckets.create=function(properties){return new Buckets(properties)},Buckets.encode=function(message,writer){if(writer||=$Writer.create(),message.offset!=null&&Object.hasOwnProperty.call(message,`offset`)&&writer.uint32(8).sint32(message.offset),message.bucketCounts!=null&&message.bucketCounts.length){writer.uint32(18).fork();for(var i=0;i<message.bucketCounts.length;++i)writer.uint64(message.bucketCounts[i]);writer.ldelim()}return writer},Buckets.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Buckets.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.offset=reader.sint32();break;case 2:if(message.bucketCounts&&message.bucketCounts.length||(message.bucketCounts=[]),(tag&7)==2)for(var end2=reader.uint32()+reader.pos;reader.pos<end2;)message.bucketCounts.push(reader.uint64());else message.bucketCounts.push(reader.uint64());break;default:reader.skipType(tag&7);break}}return message},Buckets.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Buckets.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.offset!=null&&message.hasOwnProperty(`offset`)&&!$util.isInteger(message.offset))return`offset: integer expected`;if(message.bucketCounts!=null&&message.hasOwnProperty(`bucketCounts`)){if(!Array.isArray(message.bucketCounts))return`bucketCounts: array expected`;for(var i=0;i<message.bucketCounts.length;++i)if(!$util.isInteger(message.bucketCounts[i])&&!(message.bucketCounts[i]&&$util.isInteger(message.bucketCounts[i].low)&&$util.isInteger(message.bucketCounts[i].high)))return`bucketCounts: integer|Long[] expected`}return null},Buckets.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)return object;var message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets;if(object.offset!=null&&(message.offset=object.offset|0),object.bucketCounts){if(!Array.isArray(object.bucketCounts))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.bucketCounts: array expected`);message.bucketCounts=[];for(var i=0;i<object.bucketCounts.length;++i)$util.Long?(message.bucketCounts[i]=$util.Long.fromValue(object.bucketCounts[i])).unsigned=!0:typeof object.bucketCounts[i]==`string`?message.bucketCounts[i]=parseInt(object.bucketCounts[i],10):typeof object.bucketCounts[i]==`number`?message.bucketCounts[i]=object.bucketCounts[i]:typeof object.bucketCounts[i]==`object`&&(message.bucketCounts[i]=new $util.LongBits(object.bucketCounts[i].low>>>0,object.bucketCounts[i].high>>>0).toNumber(!0))}return message},Buckets.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.bucketCounts=[]),options.defaults&&(object.offset=0),message.offset!=null&&message.hasOwnProperty(`offset`)&&(object.offset=message.offset),message.bucketCounts&&message.bucketCounts.length){object.bucketCounts=[];for(var j=0;j<message.bucketCounts.length;++j)typeof message.bucketCounts[j]==`number`?object.bucketCounts[j]=options.longs===String?String(message.bucketCounts[j]):message.bucketCounts[j]:object.bucketCounts[j]=options.longs===String?$util.Long.prototype.toString.call(message.bucketCounts[j]):options.longs===Number?new $util.LongBits(message.bucketCounts[j].low>>>0,message.bucketCounts[j].high>>>0).toNumber(!0):message.bucketCounts[j]}return object},Buckets.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Buckets.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets`},Buckets})(),ExponentialHistogramDataPoint})(),v1.SummaryDataPoint=(function(){function SummaryDataPoint(properties){if(this.attributes=[],this.quantileValues=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return SummaryDataPoint.prototype.attributes=$util.emptyArray,SummaryDataPoint.prototype.startTimeUnixNano=null,SummaryDataPoint.prototype.timeUnixNano=null,SummaryDataPoint.prototype.count=null,SummaryDataPoint.prototype.sum=null,SummaryDataPoint.prototype.quantileValues=$util.emptyArray,SummaryDataPoint.prototype.flags=null,SummaryDataPoint.create=function(properties){return new SummaryDataPoint(properties)},SummaryDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.count!=null&&Object.hasOwnProperty.call(message,`count`)&&writer.uint32(33).fixed64(message.count),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&writer.uint32(41).double(message.sum),message.quantileValues!=null&&message.quantileValues.length)for(var i=0;i<message.quantileValues.length;++i)$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.encode(message.quantileValues[i],writer.uint32(50).fork()).ldelim();if(message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(58).fork()).ldelim();return message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(64).uint32(message.flags),writer},SummaryDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},SummaryDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 7:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.count=reader.fixed64();break;case 5:message.sum=reader.double();break;case 6:message.quantileValues&&message.quantileValues.length||(message.quantileValues=[]),message.quantileValues.push($root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.decode(reader,reader.uint32()));break;case 8:message.flags=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},SummaryDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},SummaryDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.count!=null&&message.hasOwnProperty(`count`)&&!$util.isInteger(message.count)&&!(message.count&&$util.isInteger(message.count.low)&&$util.isInteger(message.count.high)))return`count: integer|Long expected`;if(message.sum!=null&&message.hasOwnProperty(`sum`)&&typeof message.sum!=`number`)return`sum: number expected`;if(message.quantileValues!=null&&message.hasOwnProperty(`quantileValues`)){if(!Array.isArray(message.quantileValues))return`quantileValues: array expected`;for(var i=0;i<message.quantileValues.length;++i){var error=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.verify(message.quantileValues[i]);if(error)return`quantileValues.`+error}}return message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:null},SummaryDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.SummaryDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.count!=null&&($util.Long?(message.count=$util.Long.fromValue(object.count)).unsigned=!1:typeof object.count==`string`?message.count=parseInt(object.count,10):typeof object.count==`number`?message.count=object.count:typeof object.count==`object`&&(message.count=new $util.LongBits(object.count.low>>>0,object.count.high>>>0).toNumber())),object.sum!=null&&(message.sum=Number(object.sum)),object.quantileValues){if(!Array.isArray(object.quantileValues))throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.quantileValues: array expected`);message.quantileValues=[];for(var i=0;i<object.quantileValues.length;++i){if(typeof object.quantileValues[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.quantileValues: object expected`);message.quantileValues[i]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.fromObject(object.quantileValues[i])}}return object.flags!=null&&(message.flags=object.flags>>>0),message},SummaryDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.quantileValues=[],object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.count=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.count=options.longs===String?`0`:0;object.sum=0,object.flags=0}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.count!=null&&message.hasOwnProperty(`count`)&&(typeof message.count==`number`?object.count=options.longs===String?String(message.count):message.count:object.count=options.longs===String?$util.Long.prototype.toString.call(message.count):options.longs===Number?new $util.LongBits(message.count.low>>>0,message.count.high>>>0).toNumber():message.count),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=options.json&&!isFinite(message.sum)?String(message.sum):message.sum),message.quantileValues&&message.quantileValues.length){object.quantileValues=[];for(var j=0;j<message.quantileValues.length;++j)object.quantileValues[j]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.toObject(message.quantileValues[j],options)}if(message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},SummaryDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},SummaryDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.SummaryDataPoint`},SummaryDataPoint.ValueAtQuantile=(function(){function ValueAtQuantile(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ValueAtQuantile.prototype.quantile=null,ValueAtQuantile.prototype.value=null,ValueAtQuantile.create=function(properties){return new ValueAtQuantile(properties)},ValueAtQuantile.encode=function(message,writer){return writer||=$Writer.create(),message.quantile!=null&&Object.hasOwnProperty.call(message,`quantile`)&&writer.uint32(9).double(message.quantile),message.value!=null&&Object.hasOwnProperty.call(message,`value`)&&writer.uint32(17).double(message.value),writer},ValueAtQuantile.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ValueAtQuantile.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.quantile=reader.double();break;case 2:message.value=reader.double();break;default:reader.skipType(tag&7);break}}return message},ValueAtQuantile.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ValueAtQuantile.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.quantile!=null&&message.hasOwnProperty(`quantile`)&&typeof message.quantile!=`number`?`quantile: number expected`:message.value!=null&&message.hasOwnProperty(`value`)&&typeof message.value!=`number`?`value: number expected`:null},ValueAtQuantile.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)return object;var message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile;return object.quantile!=null&&(message.quantile=Number(object.quantile)),object.value!=null&&(message.value=Number(object.value)),message},ValueAtQuantile.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.quantile=0,object.value=0),message.quantile!=null&&message.hasOwnProperty(`quantile`)&&(object.quantile=options.json&&!isFinite(message.quantile)?String(message.quantile):message.quantile),message.value!=null&&message.hasOwnProperty(`value`)&&(object.value=options.json&&!isFinite(message.value)?String(message.value):message.value),object},ValueAtQuantile.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ValueAtQuantile.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile`},ValueAtQuantile})(),SummaryDataPoint})(),v1.Exemplar=(function(){function Exemplar(properties){if(this.filteredAttributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}Exemplar.prototype.filteredAttributes=$util.emptyArray,Exemplar.prototype.timeUnixNano=null,Exemplar.prototype.asDouble=null,Exemplar.prototype.asInt=null,Exemplar.prototype.spanId=null,Exemplar.prototype.traceId=null;var $oneOfFields;return Object.defineProperty(Exemplar.prototype,`value`,{get:$util.oneOfGetter($oneOfFields=[`asDouble`,`asInt`]),set:$util.oneOfSetter($oneOfFields)}),Exemplar.create=function(properties){return new Exemplar(properties)},Exemplar.encode=function(message,writer){if(writer||=$Writer.create(),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(17).fixed64(message.timeUnixNano),message.asDouble!=null&&Object.hasOwnProperty.call(message,`asDouble`)&&writer.uint32(25).double(message.asDouble),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(34).bytes(message.spanId),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(42).bytes(message.traceId),message.asInt!=null&&Object.hasOwnProperty.call(message,`asInt`)&&writer.uint32(49).sfixed64(message.asInt),message.filteredAttributes!=null&&message.filteredAttributes.length)for(var i=0;i<message.filteredAttributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.filteredAttributes[i],writer.uint32(58).fork()).ldelim();return writer},Exemplar.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Exemplar.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Exemplar;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 7:message.filteredAttributes&&message.filteredAttributes.length||(message.filteredAttributes=[]),message.filteredAttributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.timeUnixNano=reader.fixed64();break;case 3:message.asDouble=reader.double();break;case 6:message.asInt=reader.sfixed64();break;case 4:message.spanId=reader.bytes();break;case 5:message.traceId=reader.bytes();break;default:reader.skipType(tag&7);break}}return message},Exemplar.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Exemplar.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.filteredAttributes!=null&&message.hasOwnProperty(`filteredAttributes`)){if(!Array.isArray(message.filteredAttributes))return`filteredAttributes: array expected`;for(var i=0;i<message.filteredAttributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.filteredAttributes[i]);if(error)return`filteredAttributes.`+error}}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(properties.value=1,typeof message.asDouble!=`number`))return`asDouble: number expected`;if(message.asInt!=null&&message.hasOwnProperty(`asInt`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!$util.isInteger(message.asInt)&&!(message.asInt&&$util.isInteger(message.asInt.low)&&$util.isInteger(message.asInt.high)))return`asInt: integer|Long expected`}return message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId))?`spanId: buffer expected`:message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId))?`traceId: buffer expected`:null},Exemplar.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Exemplar)return object;var message=new $root.opentelemetry.proto.metrics.v1.Exemplar;if(object.filteredAttributes){if(!Array.isArray(object.filteredAttributes))throw TypeError(`.opentelemetry.proto.metrics.v1.Exemplar.filteredAttributes: array expected`);message.filteredAttributes=[];for(var i=0;i<object.filteredAttributes.length;++i){if(typeof object.filteredAttributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Exemplar.filteredAttributes: object expected`);message.filteredAttributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.filteredAttributes[i])}}return object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.asDouble!=null&&(message.asDouble=Number(object.asDouble)),object.asInt!=null&&($util.Long?(message.asInt=$util.Long.fromValue(object.asInt)).unsigned=!1:typeof object.asInt==`string`?message.asInt=parseInt(object.asInt,10):typeof object.asInt==`number`?message.asInt=object.asInt:typeof object.asInt==`object`&&(message.asInt=new $util.LongBits(object.asInt.low>>>0,object.asInt.high>>>0).toNumber())),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),message},Exemplar.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.filteredAttributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId)))}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(object.asDouble=options.json&&!isFinite(message.asDouble)?String(message.asDouble):message.asDouble,options.oneofs&&(object.value=`asDouble`)),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.asInt!=null&&message.hasOwnProperty(`asInt`)&&(typeof message.asInt==`number`?object.asInt=options.longs===String?String(message.asInt):message.asInt:object.asInt=options.longs===String?$util.Long.prototype.toString.call(message.asInt):options.longs===Number?new $util.LongBits(message.asInt.low>>>0,message.asInt.high>>>0).toNumber():message.asInt,options.oneofs&&(object.value=`asInt`)),message.filteredAttributes&&message.filteredAttributes.length){object.filteredAttributes=[];for(var j=0;j<message.filteredAttributes.length;++j)object.filteredAttributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.filteredAttributes[j],options)}return object},Exemplar.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Exemplar.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Exemplar`},Exemplar})(),v1})(),metrics})(),proto.logs=(function(){var logs={};return logs.v1=(function(){var v1={};return v1.LogsData=(function(){function LogsData(properties){if(this.resourceLogs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return LogsData.prototype.resourceLogs=$util.emptyArray,LogsData.create=function(properties){return new LogsData(properties)},LogsData.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceLogs!=null&&message.resourceLogs.length)for(var i=0;i<message.resourceLogs.length;++i)$root.opentelemetry.proto.logs.v1.ResourceLogs.encode(message.resourceLogs[i],writer.uint32(10).fork()).ldelim();return writer},LogsData.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},LogsData.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.LogsData;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceLogs&&message.resourceLogs.length||(message.resourceLogs=[]),message.resourceLogs.push($root.opentelemetry.proto.logs.v1.ResourceLogs.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},LogsData.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},LogsData.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceLogs!=null&&message.hasOwnProperty(`resourceLogs`)){if(!Array.isArray(message.resourceLogs))return`resourceLogs: array expected`;for(var i=0;i<message.resourceLogs.length;++i){var error=$root.opentelemetry.proto.logs.v1.ResourceLogs.verify(message.resourceLogs[i]);if(error)return`resourceLogs.`+error}}return null},LogsData.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.LogsData)return object;var message=new $root.opentelemetry.proto.logs.v1.LogsData;if(object.resourceLogs){if(!Array.isArray(object.resourceLogs))throw TypeError(`.opentelemetry.proto.logs.v1.LogsData.resourceLogs: array expected`);message.resourceLogs=[];for(var i=0;i<object.resourceLogs.length;++i){if(typeof object.resourceLogs[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.LogsData.resourceLogs: object expected`);message.resourceLogs[i]=$root.opentelemetry.proto.logs.v1.ResourceLogs.fromObject(object.resourceLogs[i])}}return message},LogsData.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceLogs=[]),message.resourceLogs&&message.resourceLogs.length){object.resourceLogs=[];for(var j=0;j<message.resourceLogs.length;++j)object.resourceLogs[j]=$root.opentelemetry.proto.logs.v1.ResourceLogs.toObject(message.resourceLogs[j],options)}return object},LogsData.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},LogsData.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.LogsData`},LogsData})(),v1.ResourceLogs=(function(){function ResourceLogs(properties){if(this.scopeLogs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ResourceLogs.prototype.resource=null,ResourceLogs.prototype.scopeLogs=$util.emptyArray,ResourceLogs.prototype.schemaUrl=null,ResourceLogs.create=function(properties){return new ResourceLogs(properties)},ResourceLogs.encode=function(message,writer){if(writer||=$Writer.create(),message.resource!=null&&Object.hasOwnProperty.call(message,`resource`)&&$root.opentelemetry.proto.resource.v1.Resource.encode(message.resource,writer.uint32(10).fork()).ldelim(),message.scopeLogs!=null&&message.scopeLogs.length)for(var i=0;i<message.scopeLogs.length;++i)$root.opentelemetry.proto.logs.v1.ScopeLogs.encode(message.scopeLogs[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ResourceLogs.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ResourceLogs.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.ResourceLogs;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resource=$root.opentelemetry.proto.resource.v1.Resource.decode(reader,reader.uint32());break;case 2:message.scopeLogs&&message.scopeLogs.length||(message.scopeLogs=[]),message.scopeLogs.push($root.opentelemetry.proto.logs.v1.ScopeLogs.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ResourceLogs.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ResourceLogs.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resource!=null&&message.hasOwnProperty(`resource`)){var error=$root.opentelemetry.proto.resource.v1.Resource.verify(message.resource);if(error)return`resource.`+error}if(message.scopeLogs!=null&&message.hasOwnProperty(`scopeLogs`)){if(!Array.isArray(message.scopeLogs))return`scopeLogs: array expected`;for(var i=0;i<message.scopeLogs.length;++i){var error=$root.opentelemetry.proto.logs.v1.ScopeLogs.verify(message.scopeLogs[i]);if(error)return`scopeLogs.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ResourceLogs.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.ResourceLogs)return object;var message=new $root.opentelemetry.proto.logs.v1.ResourceLogs;if(object.resource!=null){if(typeof object.resource!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ResourceLogs.resource: object expected`);message.resource=$root.opentelemetry.proto.resource.v1.Resource.fromObject(object.resource)}if(object.scopeLogs){if(!Array.isArray(object.scopeLogs))throw TypeError(`.opentelemetry.proto.logs.v1.ResourceLogs.scopeLogs: array expected`);message.scopeLogs=[];for(var i=0;i<object.scopeLogs.length;++i){if(typeof object.scopeLogs[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ResourceLogs.scopeLogs: object expected`);message.scopeLogs[i]=$root.opentelemetry.proto.logs.v1.ScopeLogs.fromObject(object.scopeLogs[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ResourceLogs.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.scopeLogs=[]),options.defaults&&(object.resource=null,object.schemaUrl=``),message.resource!=null&&message.hasOwnProperty(`resource`)&&(object.resource=$root.opentelemetry.proto.resource.v1.Resource.toObject(message.resource,options)),message.scopeLogs&&message.scopeLogs.length){object.scopeLogs=[];for(var j=0;j<message.scopeLogs.length;++j)object.scopeLogs[j]=$root.opentelemetry.proto.logs.v1.ScopeLogs.toObject(message.scopeLogs[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ResourceLogs.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ResourceLogs.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.ResourceLogs`},ResourceLogs})(),v1.ScopeLogs=(function(){function ScopeLogs(properties){if(this.logRecords=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ScopeLogs.prototype.scope=null,ScopeLogs.prototype.logRecords=$util.emptyArray,ScopeLogs.prototype.schemaUrl=null,ScopeLogs.create=function(properties){return new ScopeLogs(properties)},ScopeLogs.encode=function(message,writer){if(writer||=$Writer.create(),message.scope!=null&&Object.hasOwnProperty.call(message,`scope`)&&$root.opentelemetry.proto.common.v1.InstrumentationScope.encode(message.scope,writer.uint32(10).fork()).ldelim(),message.logRecords!=null&&message.logRecords.length)for(var i=0;i<message.logRecords.length;++i)$root.opentelemetry.proto.logs.v1.LogRecord.encode(message.logRecords[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ScopeLogs.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ScopeLogs.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.ScopeLogs;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.decode(reader,reader.uint32());break;case 2:message.logRecords&&message.logRecords.length||(message.logRecords=[]),message.logRecords.push($root.opentelemetry.proto.logs.v1.LogRecord.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ScopeLogs.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ScopeLogs.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.scope!=null&&message.hasOwnProperty(`scope`)){var error=$root.opentelemetry.proto.common.v1.InstrumentationScope.verify(message.scope);if(error)return`scope.`+error}if(message.logRecords!=null&&message.hasOwnProperty(`logRecords`)){if(!Array.isArray(message.logRecords))return`logRecords: array expected`;for(var i=0;i<message.logRecords.length;++i){var error=$root.opentelemetry.proto.logs.v1.LogRecord.verify(message.logRecords[i]);if(error)return`logRecords.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ScopeLogs.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.ScopeLogs)return object;var message=new $root.opentelemetry.proto.logs.v1.ScopeLogs;if(object.scope!=null){if(typeof object.scope!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ScopeLogs.scope: object expected`);message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.fromObject(object.scope)}if(object.logRecords){if(!Array.isArray(object.logRecords))throw TypeError(`.opentelemetry.proto.logs.v1.ScopeLogs.logRecords: array expected`);message.logRecords=[];for(var i=0;i<object.logRecords.length;++i){if(typeof object.logRecords[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ScopeLogs.logRecords: object expected`);message.logRecords[i]=$root.opentelemetry.proto.logs.v1.LogRecord.fromObject(object.logRecords[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ScopeLogs.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.logRecords=[]),options.defaults&&(object.scope=null,object.schemaUrl=``),message.scope!=null&&message.hasOwnProperty(`scope`)&&(object.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.toObject(message.scope,options)),message.logRecords&&message.logRecords.length){object.logRecords=[];for(var j=0;j<message.logRecords.length;++j)object.logRecords[j]=$root.opentelemetry.proto.logs.v1.LogRecord.toObject(message.logRecords[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ScopeLogs.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ScopeLogs.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.ScopeLogs`},ScopeLogs})(),v1.SeverityNumber=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`SEVERITY_NUMBER_UNSPECIFIED`]=0,values[valuesById[1]=`SEVERITY_NUMBER_TRACE`]=1,values[valuesById[2]=`SEVERITY_NUMBER_TRACE2`]=2,values[valuesById[3]=`SEVERITY_NUMBER_TRACE3`]=3,values[valuesById[4]=`SEVERITY_NUMBER_TRACE4`]=4,values[valuesById[5]=`SEVERITY_NUMBER_DEBUG`]=5,values[valuesById[6]=`SEVERITY_NUMBER_DEBUG2`]=6,values[valuesById[7]=`SEVERITY_NUMBER_DEBUG3`]=7,values[valuesById[8]=`SEVERITY_NUMBER_DEBUG4`]=8,values[valuesById[9]=`SEVERITY_NUMBER_INFO`]=9,values[valuesById[10]=`SEVERITY_NUMBER_INFO2`]=10,values[valuesById[11]=`SEVERITY_NUMBER_INFO3`]=11,values[valuesById[12]=`SEVERITY_NUMBER_INFO4`]=12,values[valuesById[13]=`SEVERITY_NUMBER_WARN`]=13,values[valuesById[14]=`SEVERITY_NUMBER_WARN2`]=14,values[valuesById[15]=`SEVERITY_NUMBER_WARN3`]=15,values[valuesById[16]=`SEVERITY_NUMBER_WARN4`]=16,values[valuesById[17]=`SEVERITY_NUMBER_ERROR`]=17,values[valuesById[18]=`SEVERITY_NUMBER_ERROR2`]=18,values[valuesById[19]=`SEVERITY_NUMBER_ERROR3`]=19,values[valuesById[20]=`SEVERITY_NUMBER_ERROR4`]=20,values[valuesById[21]=`SEVERITY_NUMBER_FATAL`]=21,values[valuesById[22]=`SEVERITY_NUMBER_FATAL2`]=22,values[valuesById[23]=`SEVERITY_NUMBER_FATAL3`]=23,values[valuesById[24]=`SEVERITY_NUMBER_FATAL4`]=24,values})(),v1.LogRecordFlags=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`LOG_RECORD_FLAGS_DO_NOT_USE`]=0,values[valuesById[255]=`LOG_RECORD_FLAGS_TRACE_FLAGS_MASK`]=255,values})(),v1.LogRecord=(function(){function LogRecord(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return LogRecord.prototype.timeUnixNano=null,LogRecord.prototype.observedTimeUnixNano=null,LogRecord.prototype.severityNumber=null,LogRecord.prototype.severityText=null,LogRecord.prototype.body=null,LogRecord.prototype.attributes=$util.emptyArray,LogRecord.prototype.droppedAttributesCount=null,LogRecord.prototype.flags=null,LogRecord.prototype.traceId=null,LogRecord.prototype.spanId=null,LogRecord.prototype.eventName=null,LogRecord.create=function(properties){return new LogRecord(properties)},LogRecord.encode=function(message,writer){if(writer||=$Writer.create(),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(9).fixed64(message.timeUnixNano),message.severityNumber!=null&&Object.hasOwnProperty.call(message,`severityNumber`)&&writer.uint32(16).int32(message.severityNumber),message.severityText!=null&&Object.hasOwnProperty.call(message,`severityText`)&&writer.uint32(26).string(message.severityText),message.body!=null&&Object.hasOwnProperty.call(message,`body`)&&$root.opentelemetry.proto.common.v1.AnyValue.encode(message.body,writer.uint32(42).fork()).ldelim(),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(50).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(56).uint32(message.droppedAttributesCount),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(69).fixed32(message.flags),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(74).bytes(message.traceId),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(82).bytes(message.spanId),message.observedTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`observedTimeUnixNano`)&&writer.uint32(89).fixed64(message.observedTimeUnixNano),message.eventName!=null&&Object.hasOwnProperty.call(message,`eventName`)&&writer.uint32(98).string(message.eventName),writer},LogRecord.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},LogRecord.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.LogRecord;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.timeUnixNano=reader.fixed64();break;case 11:message.observedTimeUnixNano=reader.fixed64();break;case 2:message.severityNumber=reader.int32();break;case 3:message.severityText=reader.string();break;case 5:message.body=$root.opentelemetry.proto.common.v1.AnyValue.decode(reader,reader.uint32());break;case 6:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 7:message.droppedAttributesCount=reader.uint32();break;case 8:message.flags=reader.fixed32();break;case 9:message.traceId=reader.bytes();break;case 10:message.spanId=reader.bytes();break;case 12:message.eventName=reader.string();break;default:reader.skipType(tag&7);break}}return message},LogRecord.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},LogRecord.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.observedTimeUnixNano!=null&&message.hasOwnProperty(`observedTimeUnixNano`)&&!$util.isInteger(message.observedTimeUnixNano)&&!(message.observedTimeUnixNano&&$util.isInteger(message.observedTimeUnixNano.low)&&$util.isInteger(message.observedTimeUnixNano.high)))return`observedTimeUnixNano: integer|Long expected`;if(message.severityNumber!=null&&message.hasOwnProperty(`severityNumber`))switch(message.severityNumber){default:return`severityNumber: enum value expected`;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:break}if(message.severityText!=null&&message.hasOwnProperty(`severityText`)&&!$util.isString(message.severityText))return`severityText: string expected`;if(message.body!=null&&message.hasOwnProperty(`body`)){var error=$root.opentelemetry.proto.common.v1.AnyValue.verify(message.body);if(error)return`body.`+error}if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId))?`traceId: buffer expected`:message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId))?`spanId: buffer expected`:message.eventName!=null&&message.hasOwnProperty(`eventName`)&&!$util.isString(message.eventName)?`eventName: string expected`:null},LogRecord.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.LogRecord)return object;var message=new $root.opentelemetry.proto.logs.v1.LogRecord;switch(object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.observedTimeUnixNano!=null&&($util.Long?(message.observedTimeUnixNano=$util.Long.fromValue(object.observedTimeUnixNano)).unsigned=!1:typeof object.observedTimeUnixNano==`string`?message.observedTimeUnixNano=parseInt(object.observedTimeUnixNano,10):typeof object.observedTimeUnixNano==`number`?message.observedTimeUnixNano=object.observedTimeUnixNano:typeof object.observedTimeUnixNano==`object`&&(message.observedTimeUnixNano=new $util.LongBits(object.observedTimeUnixNano.low>>>0,object.observedTimeUnixNano.high>>>0).toNumber())),object.severityNumber){default:if(typeof object.severityNumber==`number`){message.severityNumber=object.severityNumber;break}break;case`SEVERITY_NUMBER_UNSPECIFIED`:case 0:message.severityNumber=0;break;case`SEVERITY_NUMBER_TRACE`:case 1:message.severityNumber=1;break;case`SEVERITY_NUMBER_TRACE2`:case 2:message.severityNumber=2;break;case`SEVERITY_NUMBER_TRACE3`:case 3:message.severityNumber=3;break;case`SEVERITY_NUMBER_TRACE4`:case 4:message.severityNumber=4;break;case`SEVERITY_NUMBER_DEBUG`:case 5:message.severityNumber=5;break;case`SEVERITY_NUMBER_DEBUG2`:case 6:message.severityNumber=6;break;case`SEVERITY_NUMBER_DEBUG3`:case 7:message.severityNumber=7;break;case`SEVERITY_NUMBER_DEBUG4`:case 8:message.severityNumber=8;break;case`SEVERITY_NUMBER_INFO`:case 9:message.severityNumber=9;break;case`SEVERITY_NUMBER_INFO2`:case 10:message.severityNumber=10;break;case`SEVERITY_NUMBER_INFO3`:case 11:message.severityNumber=11;break;case`SEVERITY_NUMBER_INFO4`:case 12:message.severityNumber=12;break;case`SEVERITY_NUMBER_WARN`:case 13:message.severityNumber=13;break;case`SEVERITY_NUMBER_WARN2`:case 14:message.severityNumber=14;break;case`SEVERITY_NUMBER_WARN3`:case 15:message.severityNumber=15;break;case`SEVERITY_NUMBER_WARN4`:case 16:message.severityNumber=16;break;case`SEVERITY_NUMBER_ERROR`:case 17:message.severityNumber=17;break;case`SEVERITY_NUMBER_ERROR2`:case 18:message.severityNumber=18;break;case`SEVERITY_NUMBER_ERROR3`:case 19:message.severityNumber=19;break;case`SEVERITY_NUMBER_ERROR4`:case 20:message.severityNumber=20;break;case`SEVERITY_NUMBER_FATAL`:case 21:message.severityNumber=21;break;case`SEVERITY_NUMBER_FATAL2`:case 22:message.severityNumber=22;break;case`SEVERITY_NUMBER_FATAL3`:case 23:message.severityNumber=23;break;case`SEVERITY_NUMBER_FATAL4`:case 24:message.severityNumber=24;break}if(object.severityText!=null&&(message.severityText=String(object.severityText)),object.body!=null){if(typeof object.body!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.LogRecord.body: object expected`);message.body=$root.opentelemetry.proto.common.v1.AnyValue.fromObject(object.body)}if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.logs.v1.LogRecord.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.LogRecord.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.flags!=null&&(message.flags=object.flags>>>0),object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.eventName!=null&&(message.eventName=String(object.eventName)),message},LogRecord.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if(object.severityNumber=options.enums===String?`SEVERITY_NUMBER_UNSPECIFIED`:0,object.severityText=``,object.body=null,object.droppedAttributesCount=0,object.flags=0,options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId))),options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),$util.Long){var long=new $util.Long(0,0,!1);object.observedTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.observedTimeUnixNano=options.longs===String?`0`:0;object.eventName=``}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.severityNumber!=null&&message.hasOwnProperty(`severityNumber`)&&(object.severityNumber=options.enums===String?$root.opentelemetry.proto.logs.v1.SeverityNumber[message.severityNumber]===void 0?message.severityNumber:$root.opentelemetry.proto.logs.v1.SeverityNumber[message.severityNumber]:message.severityNumber),message.severityText!=null&&message.hasOwnProperty(`severityText`)&&(object.severityText=message.severityText),message.body!=null&&message.hasOwnProperty(`body`)&&(object.body=$root.opentelemetry.proto.common.v1.AnyValue.toObject(message.body,options)),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.observedTimeUnixNano!=null&&message.hasOwnProperty(`observedTimeUnixNano`)&&(typeof message.observedTimeUnixNano==`number`?object.observedTimeUnixNano=options.longs===String?String(message.observedTimeUnixNano):message.observedTimeUnixNano:object.observedTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.observedTimeUnixNano):options.longs===Number?new $util.LongBits(message.observedTimeUnixNano.low>>>0,message.observedTimeUnixNano.high>>>0).toNumber():message.observedTimeUnixNano),message.eventName!=null&&message.hasOwnProperty(`eventName`)&&(object.eventName=message.eventName),object},LogRecord.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},LogRecord.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.LogRecord`},LogRecord})(),v1})(),logs})(),proto})(),opentelemetry})(),module.exports=$root})),require_hex_to_binary=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.hexToBinary=void 0;function intValue(charCode){return charCode>=48&&charCode<=57?charCode-48:charCode>=97&&charCode<=102?charCode-87:charCode-55}function hexToBinary(hexStr){let buf=new Uint8Array(hexStr.length/2),offset=0;for(let i=0;i<hexStr.length;i+=2){let hi=intValue(hexStr.charCodeAt(i)),lo=intValue(hexStr.charCodeAt(i+1));buf[offset++]=hi<<4|lo}return buf}exports.hexToBinary=hexToBinary})),require_utils$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getOtlpEncoder=exports.encodeAsString=exports.encodeAsLongBits=exports.toLongBits=exports.hrTimeToNanos=void 0;let core_1=require_src$8(),hex_to_binary_1=require_hex_to_binary();function hrTimeToNanos(hrTime){let NANOSECONDS=BigInt(1e9);return BigInt(Math.trunc(hrTime[0]))*NANOSECONDS+BigInt(Math.trunc(hrTime[1]))}exports.hrTimeToNanos=hrTimeToNanos;function toLongBits(value){return{low:Number(BigInt.asUintN(32,value)),high:Number(BigInt.asUintN(32,value>>BigInt(32)))}}exports.toLongBits=toLongBits;function encodeAsLongBits(hrTime){return toLongBits(hrTimeToNanos(hrTime))}exports.encodeAsLongBits=encodeAsLongBits;function encodeAsString(hrTime){return hrTimeToNanos(hrTime).toString()}exports.encodeAsString=encodeAsString;let encodeTimestamp=typeof BigInt<`u`?encodeAsString:core_1.hrTimeToNanoseconds;function identity(value){return value}function optionalHexToBinary(str){if(str!==void 0)return(0,hex_to_binary_1.hexToBinary)(str)}let DEFAULT_ENCODER={encodeHrTime:encodeAsLongBits,encodeSpanContext:hex_to_binary_1.hexToBinary,encodeOptionalSpanContext:optionalHexToBinary};function getOtlpEncoder(options){if(options===void 0)return DEFAULT_ENCODER;let useLongBits=options.useLongBits??!0,useHex=options.useHex??!1;return{encodeHrTime:useLongBits?encodeAsLongBits:encodeTimestamp,encodeSpanContext:useHex?identity:hex_to_binary_1.hexToBinary,encodeOptionalSpanContext:useHex?identity:optionalHexToBinary}}exports.getOtlpEncoder=getOtlpEncoder})),require_internal$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.toAnyValue=exports.toKeyValue=exports.toAttributes=exports.createInstrumentationScope=exports.createResource=void 0;function createResource(resource){let result={attributes:toAttributes(resource.attributes),droppedAttributesCount:0},schemaUrl=resource.schemaUrl;return schemaUrl&&schemaUrl!==``&&(result.schemaUrl=schemaUrl),result}exports.createResource=createResource;function createInstrumentationScope(scope){return{name:scope.name,version:scope.version}}exports.createInstrumentationScope=createInstrumentationScope;function toAttributes(attributes){return Object.keys(attributes).map(key=>toKeyValue(key,attributes[key]))}exports.toAttributes=toAttributes;function toKeyValue(key,value){return{key,value:toAnyValue(value)}}exports.toKeyValue=toKeyValue;function toAnyValue(value){let t=typeof value;return t===`string`?{stringValue:value}:t===`number`?Number.isInteger(value)?{intValue:value}:{doubleValue:value}:t===`boolean`?{boolValue:value}:value instanceof Uint8Array?{bytesValue:value}:Array.isArray(value)?{arrayValue:{values:value.map(toAnyValue)}}:t===`object`&&value!=null?{kvlistValue:{values:Object.entries(value).map(([k,v])=>toKeyValue(k,v))}}:{}}exports.toAnyValue=toAnyValue})),require_internal$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.toLogAttributes=exports.createExportLogsServiceRequest=void 0;let utils_1=require_utils$1(),internal_1=require_internal$3();function createExportLogsServiceRequest(logRecords,options){return{resourceLogs:logRecordsToResourceLogs(logRecords,(0,utils_1.getOtlpEncoder)(options))}}exports.createExportLogsServiceRequest=createExportLogsServiceRequest;function createResourceMap(logRecords){let resourceMap=new Map;for(let record of logRecords){let{resource,instrumentationScope:{name,version:version$1=``,schemaUrl=``}}=record,ismMap=resourceMap.get(resource);ismMap||(ismMap=new Map,resourceMap.set(resource,ismMap));let ismKey=`${name}@${version$1}:${schemaUrl}`,records=ismMap.get(ismKey);records||(records=[],ismMap.set(ismKey,records)),records.push(record)}return resourceMap}function logRecordsToResourceLogs(logRecords,encoder){let resourceMap=createResourceMap(logRecords);return Array.from(resourceMap,([resource,ismMap])=>{let processedResource=(0,internal_1.createResource)(resource);return{resource:processedResource,scopeLogs:Array.from(ismMap,([,scopeLogs])=>({scope:(0,internal_1.createInstrumentationScope)(scopeLogs[0].instrumentationScope),logRecords:scopeLogs.map(log=>toLogRecord(log,encoder)),schemaUrl:scopeLogs[0].instrumentationScope.schemaUrl})),schemaUrl:processedResource.schemaUrl}})}function toLogRecord(log,encoder){return{timeUnixNano:encoder.encodeHrTime(log.hrTime),observedTimeUnixNano:encoder.encodeHrTime(log.hrTimeObserved),severityNumber:toSeverityNumber(log.severityNumber),severityText:log.severityText,body:(0,internal_1.toAnyValue)(log.body),eventName:log.eventName,attributes:toLogAttributes(log.attributes),droppedAttributesCount:log.droppedAttributesCount,flags:log.spanContext?.traceFlags,traceId:encoder.encodeOptionalSpanContext(log.spanContext?.traceId),spanId:encoder.encodeOptionalSpanContext(log.spanContext?.spanId)}}function toSeverityNumber(severityNumber){return severityNumber}function toLogAttributes(attributes){return Object.keys(attributes).map(key=>(0,internal_1.toKeyValue)(key,attributes[key]))}exports.toLogAttributes=toLogAttributes})),require_logs$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufLogsSerializer=void 0;let root=require_root(),internal_1=require_internal$2(),logsResponseType=root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse,logsRequestType=root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;exports.ProtobufLogsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportLogsServiceRequest)(arg);return logsRequestType.encode(request).finish()},deserializeResponse:arg=>logsResponseType.decode(arg)}})),require_protobuf$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufLogsSerializer=void 0;var logs_1=require_logs$1();Object.defineProperty(exports,`ProtobufLogsSerializer`,{enumerable:!0,get:function(){return logs_1.ProtobufLogsSerializer}})})),require_AggregationTemporality=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AggregationTemporality=void 0,(function(AggregationTemporality){AggregationTemporality[AggregationTemporality.DELTA=0]=`DELTA`,AggregationTemporality[AggregationTemporality.CUMULATIVE=1]=`CUMULATIVE`})(exports.AggregationTemporality||={})})),require_MetricData=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DataPointType=exports.InstrumentType=void 0,(function(InstrumentType){InstrumentType.COUNTER=`COUNTER`,InstrumentType.GAUGE=`GAUGE`,InstrumentType.HISTOGRAM=`HISTOGRAM`,InstrumentType.UP_DOWN_COUNTER=`UP_DOWN_COUNTER`,InstrumentType.OBSERVABLE_COUNTER=`OBSERVABLE_COUNTER`,InstrumentType.OBSERVABLE_GAUGE=`OBSERVABLE_GAUGE`,InstrumentType.OBSERVABLE_UP_DOWN_COUNTER=`OBSERVABLE_UP_DOWN_COUNTER`})(exports.InstrumentType||={}),(function(DataPointType){DataPointType[DataPointType.HISTOGRAM=0]=`HISTOGRAM`,DataPointType[DataPointType.EXPONENTIAL_HISTOGRAM=1]=`EXPONENTIAL_HISTOGRAM`,DataPointType[DataPointType.GAUGE=2]=`GAUGE`,DataPointType[DataPointType.SUM=3]=`SUM`})(exports.DataPointType||={})})),require_utils=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.equalsCaseInsensitive=exports.binarySearchUB=exports.setEquals=exports.FlatMap=exports.isPromiseAllSettledRejectionResult=exports.PromiseAllSettled=exports.callWithTimeout=exports.TimeoutError=exports.instrumentationScopeId=exports.hashAttributes=exports.isNotNullish=void 0;function isNotNullish(item){return item!=null}exports.isNotNullish=isNotNullish;function hashAttributes(attributes){let keys=Object.keys(attributes);return keys.length===0?``:(keys=keys.sort(),JSON.stringify(keys.map(key=>[key,attributes[key]])))}exports.hashAttributes=hashAttributes;function instrumentationScopeId(instrumentationScope){return`${instrumentationScope.name}:${instrumentationScope.version??``}:${instrumentationScope.schemaUrl??``}`}exports.instrumentationScopeId=instrumentationScopeId;var TimeoutError=class TimeoutError extends Error{constructor(message){super(message),Object.setPrototypeOf(this,TimeoutError.prototype)}};exports.TimeoutError=TimeoutError;function callWithTimeout(promise,timeout){let timeoutHandle,timeoutPromise=new Promise(function(_resolve,reject){timeoutHandle=setTimeout(function(){reject(new TimeoutError(`Operation timed out.`))},timeout)});return Promise.race([promise,timeoutPromise]).then(result=>(clearTimeout(timeoutHandle),result),reason=>{throw clearTimeout(timeoutHandle),reason})}exports.callWithTimeout=callWithTimeout;async function PromiseAllSettled(promises){return Promise.all(promises.map(async p$1=>{try{return{status:`fulfilled`,value:await p$1}}catch(e){return{status:`rejected`,reason:e}}}))}exports.PromiseAllSettled=PromiseAllSettled;function isPromiseAllSettledRejectionResult(it){return it.status===`rejected`}exports.isPromiseAllSettledRejectionResult=isPromiseAllSettledRejectionResult;function FlatMap(arr,fn){let result=[];return arr.forEach(it=>{result.push(...fn(it))}),result}exports.FlatMap=FlatMap;function setEquals(lhs,rhs){if(lhs.size!==rhs.size)return!1;for(let item of lhs)if(!rhs.has(item))return!1;return!0}exports.setEquals=setEquals;function binarySearchUB(arr,value){let lo=0,hi=arr.length-1,ret=arr.length;for(;hi>=lo;){let mid=lo+Math.trunc((hi-lo)/2);arr[mid]<value?lo=mid+1:(ret=mid,hi=mid-1)}return ret}exports.binarySearchUB=binarySearchUB;function equalsCaseInsensitive(lhs,rhs){return lhs.toLowerCase()===rhs.toLowerCase()}exports.equalsCaseInsensitive=equalsCaseInsensitive})),require_types$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AggregatorKind=void 0,(function(AggregatorKind){AggregatorKind[AggregatorKind.DROP=0]=`DROP`,AggregatorKind[AggregatorKind.SUM=1]=`SUM`,AggregatorKind[AggregatorKind.LAST_VALUE=2]=`LAST_VALUE`,AggregatorKind[AggregatorKind.HISTOGRAM=3]=`HISTOGRAM`,AggregatorKind[AggregatorKind.EXPONENTIAL_HISTOGRAM=4]=`EXPONENTIAL_HISTOGRAM`})(exports.AggregatorKind||={})})),require_Drop=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DropAggregator=void 0;let types_1=require_types$1();exports.DropAggregator=class{kind=types_1.AggregatorKind.DROP;createAccumulation(){}merge(_previous,_delta){}diff(_previous,_current){}toMetricData(_descriptor,_aggregationTemporality,_accumulationByAttributes,_endTime){}}})),require_Histogram=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.HistogramAggregator=exports.HistogramAccumulation=void 0;let types_1=require_types$1(),MetricData_1=require_MetricData(),utils_1=require_utils();function createNewEmptyCheckpoint(boundaries){let counts=boundaries.map(()=>0);return counts.push(0),{buckets:{boundaries,counts},sum:0,count:0,hasMinMax:!1,min:1/0,max:-1/0}}var HistogramAccumulation=class{startTime;_boundaries;_recordMinMax;_current;constructor(startTime,_boundaries,_recordMinMax=!0,_current=createNewEmptyCheckpoint(_boundaries)){this.startTime=startTime,this._boundaries=_boundaries,this._recordMinMax=_recordMinMax,this._current=_current}record(value){if(Number.isNaN(value))return;this._current.count+=1,this._current.sum+=value,this._recordMinMax&&(this._current.min=Math.min(value,this._current.min),this._current.max=Math.max(value,this._current.max),this._current.hasMinMax=!0);let idx=(0,utils_1.binarySearchUB)(this._boundaries,value);this._current.buckets.counts[idx]+=1}setStartTime(startTime){this.startTime=startTime}toPointValue(){return this._current}};exports.HistogramAccumulation=HistogramAccumulation,exports.HistogramAggregator=class{_boundaries;_recordMinMax;kind=types_1.AggregatorKind.HISTOGRAM;constructor(_boundaries,_recordMinMax){this._boundaries=_boundaries,this._recordMinMax=_recordMinMax}createAccumulation(startTime){return new HistogramAccumulation(startTime,this._boundaries,this._recordMinMax)}merge(previous,delta){let previousValue=previous.toPointValue(),deltaValue=delta.toPointValue(),previousCounts=previousValue.buckets.counts,deltaCounts=deltaValue.buckets.counts,mergedCounts=Array(previousCounts.length);for(let idx=0;idx<previousCounts.length;idx++)mergedCounts[idx]=previousCounts[idx]+deltaCounts[idx];let min=1/0,max=-1/0;return this._recordMinMax&&(previousValue.hasMinMax&&deltaValue.hasMinMax?(min=Math.min(previousValue.min,deltaValue.min),max=Math.max(previousValue.max,deltaValue.max)):previousValue.hasMinMax?(min=previousValue.min,max=previousValue.max):deltaValue.hasMinMax&&(min=deltaValue.min,max=deltaValue.max)),new HistogramAccumulation(previous.startTime,previousValue.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:previousValue.buckets.boundaries,counts:mergedCounts},count:previousValue.count+deltaValue.count,sum:previousValue.sum+deltaValue.sum,hasMinMax:this._recordMinMax&&(previousValue.hasMinMax||deltaValue.hasMinMax),min,max})}diff(previous,current){let previousValue=previous.toPointValue(),currentValue=current.toPointValue(),previousCounts=previousValue.buckets.counts,currentCounts=currentValue.buckets.counts,diffedCounts=Array(previousCounts.length);for(let idx=0;idx<previousCounts.length;idx++)diffedCounts[idx]=currentCounts[idx]-previousCounts[idx];return new HistogramAccumulation(current.startTime,previousValue.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:previousValue.buckets.boundaries,counts:diffedCounts},count:currentValue.count-previousValue.count,sum:currentValue.sum-previousValue.sum,hasMinMax:!1,min:1/0,max:-1/0})}toMetricData(descriptor,aggregationTemporality,accumulationByAttributes,endTime){return{descriptor,aggregationTemporality,dataPointType:MetricData_1.DataPointType.HISTOGRAM,dataPoints:accumulationByAttributes.map(([attributes,accumulation])=>{let pointValue=accumulation.toPointValue(),allowsNegativeValues=descriptor.type===MetricData_1.InstrumentType.GAUGE||descriptor.type===MetricData_1.InstrumentType.UP_DOWN_COUNTER||descriptor.type===MetricData_1.InstrumentType.OBSERVABLE_GAUGE||descriptor.type===MetricData_1.InstrumentType.OBSERVABLE_UP_DOWN_COUNTER;return{attributes,startTime:accumulation.startTime,endTime,value:{min:pointValue.hasMinMax?pointValue.min:void 0,max:pointValue.hasMinMax?pointValue.max:void 0,sum:allowsNegativeValues?void 0:pointValue.sum,buckets:pointValue.buckets,count:pointValue.count}}})}}}})),require_Buckets=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Buckets=void 0,exports.Buckets=class Buckets{backing;indexBase;indexStart;indexEnd;constructor(backing=new BucketsBacking,indexBase=0,indexStart=0,indexEnd=0){this.backing=backing,this.indexBase=indexBase,this.indexStart=indexStart,this.indexEnd=indexEnd}get offset(){return this.indexStart}get length(){return this.backing.length===0||this.indexEnd===this.indexStart&&this.at(0)===0?0:this.indexEnd-this.indexStart+1}counts(){return Array.from({length:this.length},(_,i)=>this.at(i))}at(position){let bias=this.indexBase-this.indexStart;return position<bias&&(position+=this.backing.length),position-=bias,this.backing.countAt(position)}incrementBucket(bucketIndex,increment){this.backing.increment(bucketIndex,increment)}decrementBucket(bucketIndex,decrement){this.backing.decrement(bucketIndex,decrement)}trim(){for(let i=0;i<this.length;i++)if(this.at(i)!==0){this.indexStart+=i;break}else if(i===this.length-1){this.indexStart=this.indexEnd=this.indexBase=0;return}for(let i=this.length-1;i>=0;i--)if(this.at(i)!==0){this.indexEnd-=this.length-i-1;break}this._rotate()}downscale(by){this._rotate();let size=1+this.indexEnd-this.indexStart,each=1<<by,inpos=0,outpos=0;for(let pos=this.indexStart;pos<=this.indexEnd;){let mod=pos%each;mod<0&&(mod+=each);for(let i=mod;i<each&&inpos<size;i++)this._relocateBucket(outpos,inpos),inpos++,pos++;outpos++}this.indexStart>>=by,this.indexEnd>>=by,this.indexBase=this.indexStart}clone(){return new Buckets(this.backing.clone(),this.indexBase,this.indexStart,this.indexEnd)}_rotate(){let bias=this.indexBase-this.indexStart;bias!==0&&(bias>0?(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,bias),this.backing.reverse(bias,this.backing.length)):(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,this.backing.length+bias)),this.indexBase=this.indexStart)}_relocateBucket(dest,src){dest!==src&&this.incrementBucket(dest,this.backing.emptyBucket(src))}};var BucketsBacking=class BucketsBacking{_counts;constructor(_counts=[0]){this._counts=_counts}get length(){return this._counts.length}countAt(pos){return this._counts[pos]}growTo(newSize,oldPositiveLimit,newPositiveLimit){let tmp=Array(newSize).fill(0);tmp.splice(newPositiveLimit,this._counts.length-oldPositiveLimit,...this._counts.slice(oldPositiveLimit)),tmp.splice(0,oldPositiveLimit,...this._counts.slice(0,oldPositiveLimit)),this._counts=tmp}reverse(from,limit){let num=Math.floor((from+limit)/2)-from;for(let i=0;i<num;i++){let tmp=this._counts[from+i];this._counts[from+i]=this._counts[limit-i-1],this._counts[limit-i-1]=tmp}}emptyBucket(src){let tmp=this._counts[src];return this._counts[src]=0,tmp}increment(bucketIndex,increment){this._counts[bucketIndex]+=increment}decrement(bucketIndex,decrement){this._counts[bucketIndex]>=decrement?this._counts[bucketIndex]-=decrement:this._counts[bucketIndex]=0}clone(){return new BucketsBacking([...this._counts])}}})),require_ieee754=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getSignificand=exports.getNormalBase2=exports.MIN_VALUE=exports.MAX_NORMAL_EXPONENT=exports.MIN_NORMAL_EXPONENT=exports.SIGNIFICAND_WIDTH=void 0,exports.SIGNIFICAND_WIDTH=52;let EXPONENT_MASK=2146435072,SIGNIFICAND_MASK=1048575,EXPONENT_BIAS=1023;exports.MIN_NORMAL_EXPONENT=-EXPONENT_BIAS+1,exports.MAX_NORMAL_EXPONENT=EXPONENT_BIAS,exports.MIN_VALUE=2**-1022;function getNormalBase2(value){let dv=new DataView(new ArrayBuffer(8));return dv.setFloat64(0,value),((dv.getUint32(0)&2146435072)>>20)-EXPONENT_BIAS}exports.getNormalBase2=getNormalBase2;function getSignificand(value){let dv=new DataView(new ArrayBuffer(8));dv.setFloat64(0,value);let hiBits=dv.getUint32(0),loBits=dv.getUint32(4);return(hiBits&1048575)*2**32+loBits}exports.getSignificand=getSignificand})),require_util=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.nextGreaterSquare=exports.ldexp=void 0;function ldexp(frac,exp){return frac===0||frac===1/0||frac===-1/0||Number.isNaN(frac)?frac:frac*2**exp}exports.ldexp=ldexp;function nextGreaterSquare(v){return v--,v|=v>>1,v|=v>>2,v|=v>>4,v|=v>>8,v|=v>>16,v++,v}exports.nextGreaterSquare=nextGreaterSquare})),require_types=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MappingError=void 0,exports.MappingError=class extends Error{}})),require_ExponentMapping=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExponentMapping=void 0;let ieee754=require_ieee754(),util=require_util(),types_1=require_types();exports.ExponentMapping=class{_shift;constructor(scale){this._shift=-scale}mapToIndex(value){return value<ieee754.MIN_VALUE?this._minNormalLowerBoundaryIndex():ieee754.getNormalBase2(value)+this._rightShift(ieee754.getSignificand(value)-1,ieee754.SIGNIFICAND_WIDTH)>>this._shift}lowerBoundary(index){let minIndex=this._minNormalLowerBoundaryIndex();if(index<minIndex)throw new types_1.MappingError(`underflow: ${index} is < minimum lower boundary: ${minIndex}`);let maxIndex=this._maxNormalLowerBoundaryIndex();if(index>maxIndex)throw new types_1.MappingError(`overflow: ${index} is > maximum lower boundary: ${maxIndex}`);return util.ldexp(1,index<<this._shift)}get scale(){return this._shift===0?0:-this._shift}_minNormalLowerBoundaryIndex(){let index=ieee754.MIN_NORMAL_EXPONENT>>this._shift;return this._shift<2&&index--,index}_maxNormalLowerBoundaryIndex(){return ieee754.MAX_NORMAL_EXPONENT>>this._shift}_rightShift(value,shift){return Math.floor(value*2**-shift)}}})),require_LogarithmMapping=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LogarithmMapping=void 0;let ieee754=require_ieee754(),util=require_util(),types_1=require_types();exports.LogarithmMapping=class{_scale;_scaleFactor;_inverseFactor;constructor(scale){this._scale=scale,this._scaleFactor=util.ldexp(Math.LOG2E,scale),this._inverseFactor=util.ldexp(Math.LN2,-scale)}mapToIndex(value){if(value<=ieee754.MIN_VALUE)return this._minNormalLowerBoundaryIndex()-1;if(ieee754.getSignificand(value)===0)return(ieee754.getNormalBase2(value)<<this._scale)-1;let index=Math.floor(Math.log(value)*this._scaleFactor),maxIndex=this._maxNormalLowerBoundaryIndex();return index>=maxIndex?maxIndex:index}lowerBoundary(index){let maxIndex=this._maxNormalLowerBoundaryIndex();if(index>=maxIndex){if(index===maxIndex)return 2*Math.exp((index-(1<<this._scale))/this._scaleFactor);throw new types_1.MappingError(`overflow: ${index} is > maximum lower boundary: ${maxIndex}`)}let minIndex=this._minNormalLowerBoundaryIndex();if(index<=minIndex){if(index===minIndex)return ieee754.MIN_VALUE;if(index===minIndex-1)return Math.exp((index+(1<<this._scale))/this._scaleFactor)/2;throw new types_1.MappingError(`overflow: ${index} is < minimum lower boundary: ${minIndex}`)}return Math.exp(index*this._inverseFactor)}get scale(){return this._scale}_minNormalLowerBoundaryIndex(){return ieee754.MIN_NORMAL_EXPONENT<<this._scale}_maxNormalLowerBoundaryIndex(){return(ieee754.MAX_NORMAL_EXPONENT+1<<this._scale)-1}}})),require_getMapping=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getMapping=void 0;let ExponentMapping_1=require_ExponentMapping(),LogarithmMapping_1=require_LogarithmMapping(),types_1=require_types(),MIN_SCALE=-10,MAX_SCALE=20,PREBUILT_MAPPINGS=Array.from({length:31},(_,i)=>i>10?new LogarithmMapping_1.LogarithmMapping(i-10):new ExponentMapping_1.ExponentMapping(i-10));function getMapping(scale){if(scale>20||scale<-10)throw new types_1.MappingError(`expected scale >= -10 && <= 20, got: ${scale}`);return PREBUILT_MAPPINGS[scale+10]}exports.getMapping=getMapping})),require_ExponentialHistogram=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExponentialHistogramAggregator=exports.ExponentialHistogramAccumulation=void 0;let types_1=require_types$1(),MetricData_1=require_MetricData(),api_1$6=__require(`@opentelemetry/api`),Buckets_1=require_Buckets(),getMapping_1=require_getMapping(),util_1=require_util();var HighLow=class HighLow{low;high;static combine(h1,h2){return new HighLow(Math.min(h1.low,h2.low),Math.max(h1.high,h2.high))}constructor(low,high){this.low=low,this.high=high}};let MAX_SCALE=20,DEFAULT_MAX_SIZE=160,MIN_MAX_SIZE=2;var ExponentialHistogramAccumulation=class ExponentialHistogramAccumulation{startTime;_maxSize;_recordMinMax;_sum;_count;_zeroCount;_min;_max;_positive;_negative;_mapping;constructor(startTime,_maxSize=160,_recordMinMax=!0,_sum=0,_count=0,_zeroCount=0,_min=1/0,_max=-1/0,_positive=new Buckets_1.Buckets,_negative=new Buckets_1.Buckets,_mapping=(0,getMapping_1.getMapping)(20)){this.startTime=startTime,this._maxSize=_maxSize,this._recordMinMax=_recordMinMax,this._sum=_sum,this._count=_count,this._zeroCount=_zeroCount,this._min=_min,this._max=_max,this._positive=_positive,this._negative=_negative,this._mapping=_mapping,this._maxSize<2&&(api_1$6.diag.warn(`Exponential Histogram Max Size set to ${this._maxSize}, \
|
|
134
|
+
`+message)}function abortHandshakeOrEmitwsClientError(server,req,socket,code,message,headers){if(server.listenerCount(`wsClientError`)){let err=Error(message);Error.captureStackTrace(err,abortHandshakeOrEmitwsClientError),server.emit(`wsClientError`,err,socket,req)}else abortHandshake(socket,code,message,headers)}})),require_ws=__commonJSMin(((exports,module)=>{let WebSocket=require_websocket();WebSocket.createWebSocketStream=require_stream(),WebSocket.Server=require_websocket_server(),WebSocket.Receiver=require_receiver(),WebSocket.Sender=require_sender(),WebSocket.WebSocket=WebSocket,WebSocket.WebSocketServer=WebSocket.Server,module.exports=WebSocket})),require_conductor=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Conductor=void 0;let utils_1=require_utils$3(),ws_1=__importDefault(require_ws()),protocol=__importStar(require_protocol()),node_os_1=__require(`node:os`),workflow_management_1=require_workflow_management(),node_assert_1$1=__importDefault(__require(`node:assert`));exports.Conductor=class{dbosExec;conductorKey;conductorURL;url;websocket=void 0;isShuttingDown=!1;isClosed=!1;pingPeriodMs=2e4;pingTimeoutMs=15e3;pingIntervalTimeout=void 0;reconnectDelayMs=1e3;reconnectTimeout=void 0;constructor(dbosExec,conductorKey,conductorURL){this.dbosExec=dbosExec,this.conductorKey=conductorKey,this.conductorURL=conductorURL;let appName=dbosExec.appName;(0,node_assert_1$1.default)(appName,`Application name must be set in configuration in order to use DBOS Conductor`),this.url=`${conductorURL.replace(/\/+$/,``)}/websocket/${appName}/${conductorKey}`}resetWebsocket(currWebsocket,currPing){clearInterval(currPing?.interval),clearTimeout(currPing?.timeout),currWebsocket&&(currWebsocket.terminate(),this.websocket===currWebsocket&&(this.websocket=void 0)),!(this.reconnectTimeout||this.isShuttingDown)&&(this.dbosExec.logger.debug(`Reconnecting in ${this.reconnectDelayMs/1e3} second`),this.reconnectTimeout=setTimeout(()=>{this.dispatchLoop()},this.reconnectDelayMs))}setPingInterval(currWebsocket,currPing){clearInterval(currPing.interval),clearTimeout(currPing.timeout),currPing.interval=setInterval(()=>{currPing.timeout=setTimeout(()=>{this.isShuttingDown||this.reconnectTimeout===void 0&&(this.dbosExec.logger.warn(`Connection to conductor lost. Reconnecting...`),this.resetWebsocket(currWebsocket,currPing))},this.pingTimeoutMs),currWebsocket.readyState===ws_1.default.OPEN&&(this.dbosExec.logger.debug(`Sending ping to conductor`),currWebsocket.ping())},this.pingPeriodMs)}dispatchLoop(){if(this.websocket&&(this.websocket.readyState===ws_1.default.OPEN||this.websocket.readyState===ws_1.default.CONNECTING)){this.dbosExec.logger.warn(`Conductor websocket already exists`);return}if(clearTimeout(this.pingIntervalTimeout?.timeout),clearInterval(this.pingIntervalTimeout?.interval),clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,this.isShuttingDown){this.dbosExec.logger.debug(`Not starting dispatch loop as conductor is shutting down`);return}try{this.dbosExec.logger.debug(`Connecting to conductor at ${this.url}`);let currWebsocket=new ws_1.default(this.url,{handshakeTimeout:5e3});this.websocket=currWebsocket;let currPing={interval:void 0,timeout:void 0};this.setPingInterval(currWebsocket,currPing),this.pingIntervalTimeout=currPing,currWebsocket.on(`open`,()=>{this.dbosExec.logger.debug(`Opened connection to DBOS conductor`),clearTimeout(currPing.timeout)}),currWebsocket.on(`pong`,()=>{this.dbosExec.logger.debug(`Received pong from conductor`),clearTimeout(currPing.timeout)}),currWebsocket.on(`message`,async data=>{this.dbosExec.logger.debug(`Received message from conductor: ${data}`);let baseMsg=JSON.parse(data),msgType=baseMsg.type,errorMsg;switch(clearTimeout(currPing.timeout),msgType){case protocol.MessageType.EXECUTOR_INFO:let infoResp=new protocol.ExecutorInfoResponse(baseMsg.request_id,utils_1.globalParams.executorID,utils_1.globalParams.appVersion,(0,node_os_1.hostname)(),`typescript`,utils_1.globalParams.dbosVersion);currWebsocket.send(JSON.stringify(infoResp)),this.dbosExec.logger.info(`Connected to DBOS conductor`);break;case protocol.MessageType.RECOVERY:let recoveryMsg=baseMsg,success=!0;try{await this.dbosExec.recoverPendingWorkflows(recoveryMsg.executor_ids)}catch(e){errorMsg=`Exception encountered when recovering workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg),success=!1}let recoveryResp=new protocol.RecoveryResponse(baseMsg.request_id,success,errorMsg);currWebsocket.send(JSON.stringify(recoveryResp));break;case protocol.MessageType.CANCEL:let cancelMsg=baseMsg,cancelSuccess=!0;try{await this.dbosExec.cancelWorkflow(cancelMsg.workflow_id)}catch(e){errorMsg=`Exception encountered when cancelling workflow ${cancelMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg),cancelSuccess=!1}let cancelResp=new protocol.CancelResponse(baseMsg.request_id,cancelSuccess,errorMsg);currWebsocket.send(JSON.stringify(cancelResp));break;case protocol.MessageType.RESUME:let resumeMsg=baseMsg,resumeSuccess=!0;try{await this.dbosExec.resumeWorkflow(resumeMsg.workflow_id)}catch(e){errorMsg=`Exception encountered when resuming workflow ${resumeMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg),resumeSuccess=!1}let resumeResp=new protocol.ResumeResponse(baseMsg.request_id,resumeSuccess,errorMsg);currWebsocket.send(JSON.stringify(resumeResp));break;case protocol.MessageType.RESTART:let restartMsg=baseMsg,restartSuccess=!0;try{await this.dbosExec.forkWorkflow(restartMsg.workflow_id,0)}catch(e){errorMsg=`Exception encountered when restarting workflow ${restartMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg),restartSuccess=!1}let restartResp=new protocol.RestartResponse(baseMsg.request_id,restartSuccess,errorMsg);currWebsocket.send(JSON.stringify(restartResp));break;case protocol.MessageType.FORK_WORKFLOW:let forkMsg=baseMsg,newWorkflowID=forkMsg.body.new_workflow_id;try{newWorkflowID=await this.dbosExec.forkWorkflow(forkMsg.body.workflow_id,forkMsg.body.start_step,{newWorkflowID,applicationVersion:forkMsg.body.application_version})}catch(e){errorMsg=`Exception encountered when forking workflow ${forkMsg.body.workflow_id} to new workflow ${newWorkflowID} on step ${forkMsg.body.start_step}, app version ${forkMsg.body.application_version}: ${e.message}`,this.dbosExec.logger.error(errorMsg),newWorkflowID=void 0}let forkResp=new protocol.ForkWorkflowResponse(baseMsg.request_id,newWorkflowID,errorMsg);currWebsocket.send(JSON.stringify(forkResp));break;case protocol.MessageType.LIST_WORKFLOWS:let listWFMsg=baseMsg,body=listWFMsg.body,listWFReq={workflowIDs:body.workflow_uuids,workflowName:body.workflow_name,authenticatedUser:body.authenticated_user,startTime:body.start_time,endTime:body.end_time,status:body.status,applicationVersion:body.application_version,forkedFrom:body.forked_from,limit:body.limit,offset:body.offset,sortDesc:body.sort_desc,loadInput:body.load_input??!1,loadOutput:body.load_output??!1},workflowsOutput=[];try{workflowsOutput=(await this.dbosExec.listWorkflows(listWFReq)).map(wf=>new protocol.WorkflowsOutput(wf))}catch(e){errorMsg=`Exception encountered when listing workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let wfsResp=new protocol.ListWorkflowsResponse(listWFMsg.request_id,workflowsOutput,errorMsg);currWebsocket.send(JSON.stringify(wfsResp));break;case protocol.MessageType.LIST_QUEUED_WORKFLOWS:let listQueuedWFMsg=baseMsg,bodyQueued=listQueuedWFMsg.body,listQueuedWFReq={workflowName:bodyQueued.workflow_name,startTime:bodyQueued.start_time,endTime:bodyQueued.end_time,status:bodyQueued.status,forkedFrom:bodyQueued.forked_from,limit:bodyQueued.limit,queueName:bodyQueued.queue_name,offset:bodyQueued.offset,sortDesc:bodyQueued.sort_desc,loadInput:bodyQueued.load_input??!1},queuedWFOutput=[];try{queuedWFOutput=(await this.dbosExec.listQueuedWorkflows(listQueuedWFReq)).map(wf=>new protocol.WorkflowsOutput(wf))}catch(e){errorMsg=`Exception encountered when listing queued workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let queuedWfsResp=new protocol.ListQueuedWorkflowsResponse(listQueuedWFMsg.request_id,queuedWFOutput,errorMsg);currWebsocket.send(JSON.stringify(queuedWfsResp));break;case protocol.MessageType.GET_WORKFLOW:let getWFMsg=baseMsg,wfOutput;try{let workflow=await this.dbosExec.getWorkflowStatus(getWFMsg.workflow_id);workflow&&(wfOutput=new protocol.WorkflowsOutput(workflow))}catch(e){errorMsg=`Exception encountered when getting workflow ${getWFMsg.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let getWFResp=new protocol.GetWorkflowResponse(getWFMsg.request_id,wfOutput,errorMsg);currWebsocket.send(JSON.stringify(getWFResp));break;case protocol.MessageType.EXIST_PENDING_WORKFLOWS:let existPendingMsg=baseMsg,hasPendingWFs=!1;try{hasPendingWFs=(await this.dbosExec.systemDatabase.getPendingWorkflows(existPendingMsg.executor_id,existPendingMsg.application_version)).length>0}catch(e){errorMsg=`Exception encountered when checking for pending workflows: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let existPendingResp=new protocol.ExistPendingWorkflowsResponse(baseMsg.request_id,hasPendingWFs,errorMsg);currWebsocket.send(JSON.stringify(existPendingResp));break;case protocol.MessageType.LIST_STEPS:let listStepsMessage=baseMsg,workflowSteps;try{workflowSteps=(await this.dbosExec.listWorkflowSteps(listStepsMessage.workflow_id))?.map(i=>new protocol.WorkflowSteps(i))}catch(e){errorMsg=`Exception encountered when listing steps ${listStepsMessage.workflow_id}: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let listStepsResponse=new protocol.ListStepsResponse(listStepsMessage.request_id,workflowSteps,errorMsg);currWebsocket.send(JSON.stringify(listStepsResponse));break;case protocol.MessageType.RETENTION:let retentionMessage=baseMsg,retentionSuccess=!0;try{await this.dbosExec.systemDatabase.garbageCollect(retentionMessage.body.gc_cutoff_epoch_ms,retentionMessage.body.gc_rows_threshold),retentionMessage.body.timeout_cutoff_epoch_ms&&await(0,workflow_management_1.globalTimeout)(this.dbosExec.systemDatabase,retentionMessage.body.timeout_cutoff_epoch_ms)}catch(e){retentionSuccess=!1,errorMsg=`Exception encountered during enforcing retention policy: ${e.message}`,this.dbosExec.logger.error(errorMsg)}let retentionResponse=new protocol.RetentionResponse(retentionMessage.request_id,retentionSuccess,errorMsg);currWebsocket.send(JSON.stringify(retentionResponse));break;case protocol.MessageType.GET_METRICS:let getMetricsMessage=baseMsg;this.dbosExec.logger.debug(`Received metrics request for time range ${getMetricsMessage.start_time} to ${getMetricsMessage.end_time}`);let metricsData=[];if(getMetricsMessage.metric_class===`workflow_step_count`)try{metricsData=(await this.dbosExec.systemDatabase.getMetrics(getMetricsMessage.start_time,getMetricsMessage.end_time)).map(m=>new protocol.MetricDataOutput(m.metricType,m.metricName,m.value))}catch(e){errorMsg=`Exception encountered when getting metrics: ${e.message}`,this.dbosExec.logger.error(errorMsg)}else errorMsg=`Unexpected metric class: ${getMetricsMessage.metric_class}`,this.dbosExec.logger.warn(errorMsg);let getMetricsResponse=new protocol.GetMetricsResponse(getMetricsMessage.request_id,metricsData,errorMsg);currWebsocket.send(JSON.stringify(getMetricsResponse));break;default:this.dbosExec.logger.warn(`Unknown message type: ${baseMsg.type}`);let unknownResp=new protocol.BaseResponse(baseMsg.type,baseMsg.request_id,`Unknown message type`);currWebsocket.send(JSON.stringify(unknownResp))}}),currWebsocket.on(`close`,()=>{if(this.isShuttingDown){this.dbosExec.logger.info(`Shutdown Conductor connection`);return}else this.reconnectTimeout===void 0&&(this.dbosExec.logger.warn(`Connection to conductor lost. Reconnecting.`),this.resetWebsocket(currWebsocket,currPing))}),currWebsocket.on(`unexpected-response`,(_,res)=>{this.dbosExec.logger.warn(`Unexpected response from conductor: ${res.statusCode} ${res.statusMessage}}`),this.reconnectTimeout===void 0&&this.resetWebsocket(currWebsocket,currPing)}),currWebsocket.on(`error`,err=>{this.dbosExec.logger.warn(`Unexpected exception in connection to conductor. Reconnecting: ${err.message}`),this.reconnectTimeout===void 0&&this.resetWebsocket(currWebsocket,currPing)})}catch(e){this.dbosExec.logger.warn(`Error in conductor loop. Reconnecting: ${e.message}`),this.reconnectTimeout===void 0&&this.resetWebsocket(this.websocket,this.pingIntervalTimeout)}}stop(){this.isShuttingDown=!0,clearInterval(this.pingIntervalTimeout?.interval),clearTimeout(this.pingIntervalTimeout?.timeout),clearTimeout(this.reconnectTimeout),this.websocket&&this.websocket.close(),this.isClosed=!0}}})),require_authdecorators=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.registerAuthChecker=void 0;let context_1=require_context(),dbos_1=require_dbos(),decorators_1=require_decorators(),error_1=require_error();function checkMethodAuth(methReg,args){let requiredRoles=methReg.getRequiredRoles();if(requiredRoles.length>0){dbos_1.DBOS.span?.setAttribute(`requiredRoles`,requiredRoles);let curRoles=dbos_1.DBOS.authenticatedRoles,authorized=!1,set=new Set(curRoles);for(let role of requiredRoles)if(set.has(role)){authorized=!0,(0,context_1.getCurrentContextStore)()&&((0,context_1.getCurrentContextStore)().assumedRole=role);break}if(!authorized){let err=new error_1.DBOSNotAuthorizedError(`User does not have a role with permission to call ${methReg.name}`,403);throw dbos_1.DBOS.span?.addEvent(`DBOSNotAuthorizedError`,{message:err.message}),err}}return args}let authChecker=new class{installMiddleware(methReg){let classAuth=methReg?.defaults?.getRegisteredInfo(decorators_1.DBOS_AUTH),methodAuth=methReg?.getRegisteredInfo(decorators_1.DBOS_AUTH);(classAuth?.requiredRole!==void 0||methodAuth?.requiredRole!==void 0)&&methReg.addEntryInterceptor(checkMethodAuth,10)}};function registerAuthChecker(){(0,decorators_1.registerMiddlewareInstaller)(authChecker)}exports.registerAuthChecker=registerAuthChecker})),require_dbos=__commonJSMin((exports=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOS=exports.runInternalStep=exports.getExecutor=void 0;let context_1=require_context(),dbos_executor_1=require_dbos_executor(),traces_1=require_traces(),workflow_1=require_workflow(),logs_1=require_logs$2(),error_1=require_error(),config_1=require_config(),scheduler_1=require_scheduler(),decorators_1=require_decorators(),utils_1=require_utils$3(),adminserver_1=require_adminserver(),node_crypto_1$1=__require(`node:crypto`),conductor_1=require_conductor(),system_database_1=require_system_database(),wfqueue_1=require_wfqueue(),authdecorators_1=require_authdecorators(),node_assert_1=__importDefault(__require(`node:assert`));function getExecutor(){if(!dbos_executor_1.DBOSExecutor.globalInstance)throw new error_1.DBOSExecutorNotInitializedError;return dbos_executor_1.DBOSExecutor.globalInstance}exports.getExecutor=getExecutor;function runInternalStep(callback,funcName,childWFID,assignedFuncID){if(DBOS.isWithinWorkflow()){if(DBOS.isInStep())return callback();if(DBOS.isInWorkflow())return dbos_executor_1.DBOSExecutor.globalInstance.runInternalStep(callback,funcName,DBOS.workflowID,assignedFuncID??(0,context_1.functionIDGetIncrement)(),childWFID);throw new error_1.DBOSInvalidWorkflowTransitionError(`Invalid call to \`${funcName}\` inside a \`transaction\` or \`procedure\``)}return callback()}exports.runInternalStep=runInternalStep;var DBOS=class DBOS{static adminServer=void 0;static conductor=void 0;static setConfig(config){(0,node_assert_1.default)(!DBOS.isInitialized(),`Cannot call DBOS.setConfig after DBOS.launch`),DBOS.#t=config}static isInitialized(){return!!dbos_executor_1.DBOSExecutor.globalInstance?.initialized}static async launch(options){let debugMode=options?.debugMode??process.env.DBOS_DEBUG_WORKFLOW_ID!==void 0,configFile=await(0,config_1.readConfigFile)(),internalConfig=DBOS.#t?(0,config_1.translateDbosConfig)(DBOS.#t,debugMode):(0,config_1.getDbosConfig)(configFile),runtimeConfig=DBOS.#t?(0,config_1.translateRuntimeConfig)(DBOS.#t):(0,config_1.getRuntimeConfig)(configFile);if(process.env.DBOS__CLOUD===`true`&&([internalConfig,runtimeConfig]=(0,config_1.overwriteConfigForDBOSCloud)(internalConfig,runtimeConfig,configFile)),utils_1.globalParams.enableOTLP=DBOS.#t?.enableOTLP??(0,utils_1.defaultEnableOTLP)(),(0,traces_1.isTraceContextWorking)()||(0,traces_1.installTraceContextManager)(internalConfig.name),(0,decorators_1.insertAllMiddleware)(),DBOS.isInitialized())return;process.env.DBOS__CLOUD!==`true`&&(DBOS.#t?.applicationVersion&&(utils_1.globalParams.appVersion=DBOS.#t.applicationVersion),DBOS.#t?.executorID&&(utils_1.globalParams.executorID=DBOS.#t.executorID)),options?.conductorKey&&(utils_1.globalParams.executorID=(0,node_crypto_1$1.randomUUID)()),dbos_executor_1.DBOSExecutor.createDebouncerWorkflow(),dbos_executor_1.DBOSExecutor.createInternalQueue(),dbos_executor_1.DBOSExecutor.globalInstance=new dbos_executor_1.DBOSExecutor(internalConfig,{debugMode}),(0,decorators_1.recordDBOSLaunch)();let executor=dbos_executor_1.DBOSExecutor.globalInstance;await executor.init();let debugWorkflowId=process.env.DBOS_DEBUG_WORKFLOW_ID;if(debugWorkflowId){DBOS.logger.info(`Debugging workflow "${debugWorkflowId}"`),await(await executor.executeWorkflowId(debugWorkflowId)).getResult(),DBOS.logger.info(`Workflow Debugging complete. Exiting process.`),await executor.destroy(),process.exit(0);return}await dbos_executor_1.DBOSExecutor.globalInstance.initEventReceivers();for(let[_n,ds]of decorators_1.transactionalDataSources)await ds.initialize();options?.conductorKey&&(options.conductorURL||=`wss://${process.env.DBOS_DOMAIN||`cloud.dbos.dev`}/conductor/v1alpha1`,DBOS.conductor=new conductor_1.Conductor(dbos_executor_1.DBOSExecutor.globalInstance,options.conductorKey,options.conductorURL),DBOS.conductor.dispatchLoop());let logger=DBOS.logger;if(runtimeConfig.runAdminServer){let adminApp=adminserver_1.DBOSAdminServer.setupAdminApp(executor);try{await adminserver_1.DBOSAdminServer.checkPortAvailabilityIPv4Ipv6(runtimeConfig.admin_port,logger),DBOS.adminServer=await new Promise((resolve$1,reject)=>{let server=adminApp.listen(runtimeConfig?.admin_port,()=>{DBOS.logger.debug(`DBOS Admin Server is running at http://localhost:${runtimeConfig?.admin_port}`),resolve$1(server)});server.on(`error`,err=>{reject(err)})})}catch{logger.warn(`Unable to start DBOS admin server on port ${runtimeConfig.admin_port}`)}}}static logRegisteredEndpoints(){if(dbos_executor_1.DBOSExecutor.globalInstance){wfqueue_1.wfQueueRunner.logRegisteredEndpoints(dbos_executor_1.DBOSExecutor.globalInstance);for(let lcl of(0,decorators_1.getLifecycleListeners)())lcl.logRegisteredEndpoints?.()}}static async shutdown(){if(DBOS.adminServer&&=(DBOS.adminServer.close(),void 0),DBOS.conductor){for(DBOS.conductor.stop();!DBOS.conductor.isClosed;)await(0,utils_1.sleepms)(500);DBOS.conductor=void 0}dbos_executor_1.DBOSExecutor.globalInstance&&(await dbos_executor_1.DBOSExecutor.globalInstance.deactivateEventReceivers(),await dbos_executor_1.DBOSExecutor.globalInstance.destroy(),dbos_executor_1.DBOSExecutor.globalInstance=void 0);for(let[_n,ds]of decorators_1.transactionalDataSources)await ds.destroy();utils_1.globalParams.appVersion=process.env.DBOS__APPVERSION||``,utils_1.globalParams.wasComputed=!1,utils_1.globalParams.appID=process.env.DBOS__APPID||``,utils_1.globalParams.executorID=process.env.DBOS__VMID||`local`,(0,decorators_1.recordDBOSShutdown)()}static async deactivateEventReceivers(){return dbos_executor_1.DBOSExecutor.globalInstance?.deactivateEventReceivers()}static async initEventReceivers(){return dbos_executor_1.DBOSExecutor.globalInstance?.initEventReceivers()}static get#e(){return getExecutor()}static#t;static get logger(){let lctx=(0,context_1.getCurrentContextStore)();if(lctx?.logger)return lctx.logger;let executor=dbos_executor_1.DBOSExecutor.globalInstance;return executor?executor.logger:new logs_1.GlobalLogger}static get tracer(){let executor=dbos_executor_1.DBOSExecutor.globalInstance;if(executor)return executor.tracer}static get span(){return(0,traces_1.getActiveSpan)()}static requestObject(){return(0,context_1.getCurrentContextStore)()?.request}static getRequest(){return this.requestObject()}static get request(){let r=DBOS.getRequest();if(!r)throw new error_1.DBOSError("`DBOS.request` accessed from outside of HTTP requests");return r}static get applicationVersion(){return utils_1.globalParams.appVersion}static get workflowID(){return(0,context_1.getCurrentContextStore)()?.workflowId}static get stepID(){if(DBOS.isInStep())return(0,context_1.getCurrentContextStore)()?.curStepFunctionId;if(DBOS.isInTransaction())return(0,context_1.getCurrentContextStore)()?.curTxFunctionId}static get stepStatus(){return(0,context_1.getCurrentContextStore)()?.stepStatus}static get authenticatedUser(){return(0,context_1.getCurrentContextStore)()?.authenticatedUser??``}static get authenticatedRoles(){return(0,context_1.getCurrentContextStore)()?.authenticatedRoles??[]}static get assumedRole(){return(0,context_1.getCurrentContextStore)()?.assumedRole??``}static isInTransaction(){return(0,context_1.getCurrentContextStore)()?.curTxFunctionId!==void 0}static isInStep(){return(0,context_1.getCurrentContextStore)()?.curStepFunctionId!==void 0}static isWithinWorkflow(){return(0,context_1.getCurrentContextStore)()?.workflowId!==void 0}static isInWorkflow(){return DBOS.isWithinWorkflow()&&!DBOS.isInTransaction()&&!DBOS.isInStep()}static async getEventDispatchState(svc,wfn,key){return(0,decorators_1.ensureDBOSIsLaunched)(`getEventDispatchState`),await DBOS.#e.getEventDispatchState(svc,wfn,key)}static async upsertEventDispatchState(state){return(0,decorators_1.ensureDBOSIsLaunched)(`upsertEventDispatchState`),await DBOS.#e.upsertEventDispatchState(state)}static getWorkflowStatus(workflowID){if((0,decorators_1.ensureDBOSIsLaunched)(`getWorkflowStatus`),DBOS.isWithinWorkflow()){if(DBOS.isInStep())return DBOS.#e.getWorkflowStatus(workflowID);if(DBOS.isInWorkflow())return DBOS.#e.getWorkflowStatus(workflowID,DBOS.workflowID,(0,context_1.functionIDGetIncrement)());throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `getWorkflowStatus` inside a `transaction` or `procedure`")}return DBOS.#e.getWorkflowStatus(workflowID)}static async getResult(workflowID,timeoutSeconds){(0,decorators_1.ensureDBOSIsLaunched)(`getResult`);let timerFuncID;return DBOS.isWithinWorkflow()&&timeoutSeconds!==void 0&&(timerFuncID=(0,context_1.functionIDGetIncrement)()),await DBOS.getResultInternal(workflowID,timeoutSeconds,timerFuncID,void 0)}static async getResultInternal(workflowID,timeoutSeconds,timerFuncID,assignedFuncID){return await runInternalStep(async()=>{let rres=await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.awaitWorkflowResult(workflowID,timeoutSeconds,DBOS.workflowID,timerFuncID);if(!rres)return null;if(rres?.cancelled)throw new error_1.DBOSAwaitedWorkflowCancelledError(workflowID);return dbos_executor_1.DBOSExecutor.reviveResultOrError(rres)},`DBOS.getResult`,workflowID,assignedFuncID)}static retrieveWorkflow(workflowID){if((0,decorators_1.ensureDBOSIsLaunched)(`retrieveWorkflow`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `retrieveWorkflow` inside a `transaction` or `step`");return new workflow_1.RetrievedHandle(dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase,workflowID)}return DBOS.#e.retrieveWorkflow(workflowID)}static async listWorkflows(input){return(0,decorators_1.ensureDBOSIsLaunched)(`listWorkflows`),await runInternalStep(async()=>await DBOS.#e.listWorkflows(input),`DBOS.listWorkflows`)}static async listQueuedWorkflows(input){return(0,decorators_1.ensureDBOSIsLaunched)(`listQueuedWorkflows`),await runInternalStep(async()=>await DBOS.#e.listQueuedWorkflows(input),`DBOS.listQueuedWorkflows`)}static async listWorkflowSteps(workflowID){return(0,decorators_1.ensureDBOSIsLaunched)(`listWorkflowSteps`),await runInternalStep(async()=>await DBOS.#e.listWorkflowSteps(workflowID),`DBOS.listWorkflowSteps`)}static async cancelWorkflow(workflowID){return(0,decorators_1.ensureDBOSIsLaunched)(`cancelWorkflow`),await runInternalStep(async()=>await DBOS.#e.cancelWorkflow(workflowID),`DBOS.cancelWorkflow`)}static async resumeWorkflow(workflowID){return(0,decorators_1.ensureDBOSIsLaunched)(`resumeWorkflow`),await runInternalStep(async()=>await DBOS.#e.resumeWorkflow(workflowID),`DBOS.resumeWorkflow`),this.retrieveWorkflow(workflowID)}static async forkWorkflow(workflowID,startStep,options){(0,decorators_1.ensureDBOSIsLaunched)(`forkWorkflow`);let forkedID=await runInternalStep(async()=>await DBOS.#e.forkWorkflow(workflowID,startStep,options),`DBOS.forkWorkflow`);return this.retrieveWorkflow(forkedID)}static async sleepms(durationMS){if(DBOS.isWithinWorkflow()&&!DBOS.isInStep()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.sleep` inside a `transaction`");let functionID=(0,context_1.functionIDGetIncrement)();return durationMS<=0?void 0:await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.durableSleepms(DBOS.workflowID,functionID,durationMS)}await(0,utils_1.sleepms)(durationMS)}static async sleepSeconds(durationSec){return DBOS.sleepms(durationSec*1e3)}static async sleep(durationMS){return DBOS.sleepms(durationMS)}static async now(){return DBOS.isInWorkflow()?runInternalStep(async()=>Promise.resolve(Date.now()),`DBOS.now`):Date.now()}static async randomUUID(){return DBOS.isInWorkflow()?runInternalStep(async()=>Promise.resolve((0,node_crypto_1$1.randomUUID)()),`DBOS.randomUUID`):(0,node_crypto_1$1.randomUUID)()}static async withNextWorkflowID(workflowID,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.#n({idAssignedForNextWorkflow:workflowID},callback)}static async withAuthedContext(authedUser,authedRoles,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`auth`),DBOS.#n({authenticatedUser:authedUser,authenticatedRoles:authedRoles},callback)}static async withNamedContext(callerName,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`tracing`),DBOS.#n({operationCaller:callerName},callback)}static async withWorkflowQueue(queueName,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.#n({queueAssignedForWorkflows:queueName},callback)}static async withWorkflowTimeout(timeoutMS,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.#n({workflowTimeoutMS:timeoutMS},callback)}static async runWithContext(options,callback){return(0,decorators_1.ensureDBOSIsLaunched)(`contexts`),DBOS.#n(options,callback)}static async#n(options,callback){let pctx=(0,context_1.getCurrentContextStore)();if(pctx){let existing={};for(let k of Object.keys(options))Object.hasOwn(pctx,k)&&(existing[k]=options[k]),pctx[k]=options[k];try{return await callback()}finally{for(let k of Object.keys(options))Object.hasOwn(existing,k)?pctx[k]=existing[k]:delete pctx[k]}}else return await(0,context_1.runWithTopContext)(options,callback)}static startWorkflow(target,params){(0,decorators_1.ensureDBOSIsLaunched)(`workflows`);let instance=typeof target==`function`?null:target;if(instance&&typeof instance!=`function`&&!(instance instanceof decorators_1.ConfiguredInstance))throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call `startWorkflow` on an object that is not a `ConfiguredInstance`");if(params&¶ms.queueName){let wfqueue=this.#e.getQueueByName(params.queueName),queuePartitionKey=params.enqueueOptions?.queuePartitionKey;if(wfqueue.partitionQueue&&!queuePartitionKey)throw Error(`A workflow cannot be enqueued on partitioned queue ${params.queueName} without a partition key`);if(queuePartitionKey&&!wfqueue.partitionQueue)throw Error(`You can only use a partition key on a partition-enabled queue. Key ${queuePartitionKey} was used with non-partitioned queue ${params.queueName}`);if(queuePartitionKey&¶ms.enqueueOptions?.deduplicationID)throw Error(`Deduplication is not supported for partitioned queues`)}let regOps=(0,decorators_1.getRegisteredOperations)(target);return new Proxy(target,{apply(target$1,_thisArg,args){let regOp=(0,decorators_1.getFunctionRegistration)(target$1);if(!regOp){let name=typeof target$1==`function`?target$1.name:target$1.toString();throw new error_1.DBOSNotRegisteredError(name,`${name} is not a registered DBOS workflow function`)}return DBOS.#r(instance,regOp,args,params)},get(target$1,p$1,receiver){let func=Reflect.get(target$1,p$1,receiver),regOp=(0,decorators_1.getFunctionRegistration)(func)??regOps.find(op=>op.name===p$1);if(regOp)return(...args)=>DBOS.#r(instance,regOp,args,params);let name=typeof p$1==`string`?p$1:String(p$1);throw new error_1.DBOSNotRegisteredError(name,`${name} is not a registered DBOS workflow function`)}})}static async send(destinationID,message,topic,idempotencyKey){if((0,decorators_1.ensureDBOSIsLaunched)(`send`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.send` inside a `step` or `transaction`");if(idempotencyKey)throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.send` with an idempotency key from within a workflow");let functionID=(0,context_1.functionIDGetIncrement)();return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.send(DBOS.workflowID,functionID,destinationID,utils_1.DBOSJSON.stringify(message),topic)}return DBOS.#e.runSendTempWF(destinationID,message,topic,idempotencyKey)}static async recv(topic,timeoutSeconds){if((0,decorators_1.ensureDBOSIsLaunched)(`recv`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.recv` inside a `step` or `transaction`");let functionID=(0,context_1.functionIDGetIncrement)(),timeoutFunctionID=(0,context_1.functionIDGetIncrement)();return utils_1.DBOSJSON.parse(await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.recv(DBOS.workflowID,functionID,timeoutFunctionID,topic,timeoutSeconds))}throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call `DBOS.recv` outside of a workflow")}static async setEvent(key,value){if((0,decorators_1.ensureDBOSIsLaunched)(`setEvent`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.setEvent` inside a `step` or `transaction`");let functionID=(0,context_1.functionIDGetIncrement)();return dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.setEvent(DBOS.workflowID,functionID,key,utils_1.DBOSJSON.stringify(value))}throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call `DBOS.setEvent` outside of a workflow")}static async getEvent(workflowID,key,timeoutSeconds){if((0,decorators_1.ensureDBOSIsLaunched)(`getEvent`),DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.getEvent` inside a `step` or `transaction`");let functionID=(0,context_1.functionIDGetIncrement)(),timeoutFunctionID=(0,context_1.functionIDGetIncrement)(),params={workflowID:DBOS.workflowID,functionID,timeoutFunctionID};return utils_1.DBOSJSON.parse(await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.getEvent(workflowID,key,timeoutSeconds??dbos_executor_1.DBOSExecutor.defaultNotificationTimeoutSec,params))}return DBOS.#e.getEvent(workflowID,key,timeoutSeconds)}static async writeStream(key,value){if((0,decorators_1.ensureDBOSIsLaunched)(`writeStream`),DBOS.isWithinWorkflow())if(DBOS.isInWorkflow()){let functionID=(0,context_1.functionIDGetIncrement)();return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.writeStreamFromWorkflow(DBOS.workflowID,functionID,key,value)}else if(DBOS.isInStep())return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.writeStreamFromStep(DBOS.workflowID,key,value);else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.writeStream` outside of a workflow or step");else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.writeStream` outside of a workflow or step")}static async closeStream(key){if((0,decorators_1.ensureDBOSIsLaunched)(`closeStream`),DBOS.isWithinWorkflow())if(DBOS.isInWorkflow()){let functionID=(0,context_1.functionIDGetIncrement)();return await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.closeStream(DBOS.workflowID,functionID,key)}else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.closeStream` outside of a workflow or step");else throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to `DBOS.closeStream` outside of a workflow")}static async*readStream(workflowID,key){(0,decorators_1.ensureDBOSIsLaunched)(`readStream`);let offset=0;for(;;)try{let value=await dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.readStream(workflowID,key,offset);if(value===system_database_1.DBOS_STREAM_CLOSED_SENTINEL)break;yield value,offset+=1}catch(error){if(error instanceof Error&&error.message.includes(`No value found`)){let status=await DBOS.getWorkflowStatus(workflowID);if(!status||!(0,workflow_1.isWorkflowActive)(status.status))break;await(0,utils_1.sleepms)(1e3);continue}throw error}}static registerScheduled(func,config){scheduler_1.ScheduledReceiver.registerScheduled(func,config)}static scheduled(config){function methodDecorator(target,propertyKey,descriptor){return descriptor.value&&DBOS.registerScheduled(descriptor.value,{...config,ctorOrProto:target,name:String(propertyKey)}),descriptor}return methodDecorator}static workflow(config={}){function decorator(target,propertyKey,inDescriptor){let{descriptor,registration}=(0,decorators_1.wrapDBOSFunctionAndRegisterByUniqueNameDec)(target,propertyKey,inDescriptor),invoker=DBOS.#i(registration,config);return descriptor.value=invoker,registration.wrappedFunction=invoker,(0,decorators_1.registerFunctionWrapper)(invoker,registration),descriptor}return decorator}static registerWorkflow(func,config){let registration=(0,decorators_1.wrapDBOSFunctionAndRegisterByUniqueName)(config?.ctorOrProto,config?.className,config?.name??func.name,func);return DBOS.#i(registration,config)}static async#r($this,regOP,args,params={},startWfFuncId){(0,decorators_1.ensureDBOSIsLaunched)(`workflows`);let wfId=(0,context_1.getNextWFID)(params.workflowID),ppctx=(0,context_1.getCurrentContextStore)(),queueName=params.queueName??ppctx?.queueAssignedForWorkflows,timeoutMS=params.timeoutMS??ppctx?.workflowTimeoutMS,instance=$this===void 0||typeof $this==`function`?void 0:$this;if(instance&&!(instance instanceof decorators_1.ConfiguredInstance))throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call a `workflow` function on an object that is not a `ConfiguredInstance`");if(DBOS.isWithinWorkflow()){if(!DBOS.isInWorkflow())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a `workflow` function from within a `step` or `transaction`");let funcId=startWfFuncId??(0,context_1.functionIDGetIncrement)(),pctx=(0,context_1.getCurrentContextStore)(),pwfid=pctx.workflowId;return await invokeRegOp({workflowUUID:wfId||pwfid+`-`+funcId,configuredInstance:instance,queueName,timeoutMS,deadlineEpochMS:params.timeoutMS===null||pctx?.workflowTimeoutMS===null?void 0:pctx?.deadlineEpochMS,enqueueOptions:params.enqueueOptions},pwfid,funcId)}else return await invokeRegOp({workflowUUID:wfId,queueName,enqueueOptions:params.enqueueOptions,configuredInstance:instance,timeoutMS},void 0,void 0);function invokeRegOp(wfParams,workflowID,funcNum){if(regOP.workflowConfig){let func=regOP.registeredFunction;return dbos_executor_1.DBOSExecutor.globalInstance.internalWorkflow(func,wfParams,workflowID,funcNum,...args)}if(regOP.stepConfig){let func=regOP.registeredFunction;return dbos_executor_1.DBOSExecutor.globalInstance.startStepTempWF(func,wfParams,workflowID,funcNum,...args)}throw new error_1.DBOSNotRegisteredError(regOP.name,`${regOP.name} is not a registered DBOS workflow, step, or transaction function`)}}static#i(registration,config){registration.setWorkflowConfig(config??{});let invoker=async function(...rawArgs){if((0,decorators_1.ensureDBOSIsLaunched)(`workflows`),DBOS.isInWorkflow()){let startWfFuncId=(0,context_1.functionIDGetIncrement)(),getResFuncID=(0,context_1.functionIDGetIncrement)();return await(await DBOS.#r(this,registration,rawArgs,void 0,startWfFuncId)).getResult(getResFuncID)}return await(await DBOS.#r(this,registration,rawArgs)).getResult()};return(0,decorators_1.registerFunctionWrapper)(invoker,registration),Object.defineProperty(invoker,`name`,{value:registration.name}),invoker}static step(config={}){function decorator(target,propertyKey,inDescriptor){let{descriptor,registration}=(0,decorators_1.wrapDBOSFunctionAndRegisterByUniqueNameDec)(target,propertyKey,inDescriptor);registration.setStepConfig(config);let invokeWrapper=async function(...rawArgs){(0,decorators_1.ensureDBOSIsLaunched)(`steps`);let inst;if(!(this===void 0||typeof this==`function`)&&(inst=this,!(inst instanceof decorators_1.ConfiguredInstance)))throw new error_1.DBOSInvalidWorkflowTransitionError("Attempt to call a `step` function on an object that is not a `ConfiguredInstance`");if(DBOS.isWithinWorkflow()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a `step` function from within a `transaction`");return DBOS.isInStep()?registration.registeredFunction.call(this,...rawArgs):await dbos_executor_1.DBOSExecutor.globalInstance.callStepFunction(registration.registeredFunction,void 0,void 0,inst??null,...rawArgs)}let wfId=(0,context_1.getNextWFID)(void 0),wfParams={configuredInstance:inst,workflowUUID:wfId};return await DBOS.#e.runStepTempWF(registration.registeredFunction,wfParams,...rawArgs)};return descriptor.value=invokeWrapper,registration.wrappedFunction=invokeWrapper,(0,decorators_1.registerFunctionWrapper)(invokeWrapper,registration),Object.defineProperty(invokeWrapper,`name`,{value:registration.name}),descriptor}return decorator}static registerStep(func,config={}){let name=config.name??func.name,reg=(0,decorators_1.wrapDBOSFunctionAndRegister)(config?.ctorOrProto,config?.className,name,func),invokeWrapper=async function(...rawArgs){(0,decorators_1.ensureDBOSIsLaunched)(`steps`);let inst=this,callFunc=reg.registeredFunction??reg.origFunction;if(DBOS.isWithinWorkflow()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a `step` function from within a `transaction`");return DBOS.isInStep()?callFunc.call(this,...rawArgs):await dbos_executor_1.DBOSExecutor.globalInstance.callStepFunction(callFunc,name,config,inst??null,...rawArgs)}if((0,context_1.getNextWFID)(void 0))throw new error_1.DBOSInvalidWorkflowTransitionError(`Invalid call to step '${name}' outside of a workflow; with directive to start a workflow.`);return callFunc.call(this,...rawArgs)};return(0,decorators_1.registerFunctionWrapper)(invokeWrapper,reg),Object.defineProperty(invokeWrapper,`name`,{value:name}),invokeWrapper}static runStep(func,config={}){(0,decorators_1.ensureDBOSIsLaunched)(`steps`);let name=config.name??func.name;if(DBOS.isWithinWorkflow()){if(DBOS.isInTransaction())throw new error_1.DBOSInvalidWorkflowTransitionError("Invalid call to a runStep from within a `transaction`");return DBOS.isInStep()?func():dbos_executor_1.DBOSExecutor.globalInstance.callStepFunction(func,name,config,null)}if((0,context_1.getNextWFID)(void 0))throw new error_1.DBOSInvalidWorkflowTransitionError(`Invalid call to step '${name}' outside of a workflow; with directive to start a workflow.`);return func()}static registerSerialization(serReg){if(DBOS.isInitialized())throw TypeError(`Serializers/deserializers should not be registered after DBOS.launch()`);(0,utils_1.registerSerializationRecipe)(serReg)}static defaultRequiredRole(anyOf){function clsdec(ctor){let clsreg=(0,decorators_1.associateClassWithExternal)(decorators_1.DBOS_AUTH,ctor);clsreg.requiredRole=anyOf,(0,authdecorators_1.registerAuthChecker)()}return clsdec}static requiredRole(anyOf){function apidec(target,propertyKey,inDescriptor){let rr=(0,decorators_1.associateMethodWithExternal)(decorators_1.DBOS_AUTH,target,void 0,propertyKey.toString(),inDescriptor.value);return rr.regInfo.requiredRole=anyOf,(0,authdecorators_1.registerAuthChecker)(),inDescriptor.value=rr.registration.wrappedFunction??rr.registration.registeredFunction,inDescriptor}return apidec}static registerLifecycleCallback(lcl){(0,decorators_1.registerLifecycleCallback)(lcl)}static registerMiddlewareInstaller(mwp){(0,decorators_1.registerMiddlewareInstaller)(mwp)}static associateClassWithInfo(external,cls){return(0,decorators_1.associateClassWithExternal)(external,cls)}static associateFunctionWithInfo(external,func,target){return(0,decorators_1.associateMethodWithExternal)(external,target.ctorOrProto,target.className,target.name??func.name,func)}static associateParamWithInfo(external,func,target){return(0,decorators_1.associateParameterWithExternal)(external,target.ctorOrProto,target.className,target.name??func?.name??`<unknown>`,func,target.param)}static getAssociatedInfo(external,cls,funcName){return(0,decorators_1.getRegistrationsForExternal)(external,cls,funcName)}};exports.DBOS=DBOS})),require_workflow=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.RetrievedHandle=exports.InvokedHandle=exports.isWorkflowActive=exports.StatusString=exports.DEFAULT_MAX_RECOVERY_ATTEMPTS=void 0;let utils_1=require_utils$3(),dbos_1=require_dbos(),dbos_executor_1=require_dbos_executor();exports.DEFAULT_MAX_RECOVERY_ATTEMPTS=100,exports.StatusString={PENDING:`PENDING`,SUCCESS:`SUCCESS`,ERROR:`ERROR`,MAX_RECOVERY_ATTEMPTS_EXCEEDED:`MAX_RECOVERY_ATTEMPTS_EXCEEDED`,CANCELLED:`CANCELLED`,ENQUEUED:`ENQUEUED`};function isWorkflowActive(status){return status===exports.StatusString.PENDING||status===exports.StatusString.ENQUEUED}exports.isWorkflowActive=isWorkflowActive;var InvokedHandle=class{systemDatabase;workflowPromise;workflowUUID;workflowName;constructor(systemDatabase,workflowPromise,workflowUUID,workflowName){this.systemDatabase=systemDatabase,this.workflowPromise=workflowPromise,this.workflowUUID=workflowUUID,this.workflowName=workflowName}getWorkflowUUID(){return this.workflowUUID}get workflowID(){return this.workflowUUID}async getStatus(){return await dbos_1.DBOS.getWorkflowStatus(this.workflowUUID)}async getResult(funcIdForGet){return await(0,dbos_1.runInternalStep)(async()=>await this.workflowPromise,`DBOS.getResult`,this.workflowUUID,funcIdForGet)}async getWorkflowInputs(){let status=await this.systemDatabase.getWorkflowStatus(this.workflowUUID);return utils_1.DBOSJSON.parse(status.input)}};exports.InvokedHandle=InvokedHandle;var RetrievedHandle=class{systemDatabase;workflowUUID;constructor(systemDatabase,workflowUUID){this.systemDatabase=systemDatabase,this.workflowUUID=workflowUUID}getWorkflowUUID(){return this.workflowUUID}get workflowID(){return this.workflowUUID}async getStatus(){return await dbos_1.DBOS.getWorkflowStatus(this.workflowUUID)}async getResult(funcIdForGet){return await dbos_1.DBOS.getResultInternal(this.workflowUUID,void 0,void 0,funcIdForGet)}async getWorkflowInputs(){let status=await this.systemDatabase.getWorkflowStatus(this.workflowUUID);return utils_1.DBOSJSON.parse(status.input)}};exports.RetrievedHandle=RetrievedHandle,(0,utils_1.registerSerializationRecipe)({name:`DBOS.WorkflowHandle`,isApplicable:v=>v instanceof RetrievedHandle||v instanceof InvokedHandle,serialize:v=>({wfid:v.workflowID}),deserialize:s=>new RetrievedHandle(dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase,s.wfid)})})),require_collector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TelemetryCollector=void 0;var SignalsQueue=class{data=[];push(signal){this.data.push(signal)}pop(){return this.data.shift()}size(){return this.data.length}};exports.TelemetryCollector=class{exporter;signals=new SignalsQueue;signalBufferID;processAndExportSignalsIntervalMs=100;constructor(exporter){this.exporter=exporter,this.signalBufferID=setInterval(()=>{this.processAndExportSignals()},this.processAndExportSignalsIntervalMs)}async destroy(){clearInterval(this.signalBufferID),await this.processAndExportSignals(),await this.exporter?.flush()}push(signal){this.signals.push(signal)}pop(){return this.signals.pop()}async processAndExportSignals(){let batch=[];for(;this.signals.size()>0;){let signal=this.pop();if(!signal)break;batch.push(signal)}if(batch.length>0&&this.exporter)try{await this.exporter.export(batch)}catch(e){console.error(e.message)}}}})),OTLPExporterBase,init_OTLPExporterBase=__esmMin((()=>{OTLPExporterBase=class{_delegate;constructor(_delegate){this._delegate=_delegate}export(items,resultCallback){this._delegate.export(items,resultCallback)}forceFlush(){return this._delegate.forceFlush()}shutdown(){return this._delegate.shutdown()}}})),OTLPExporterError,init_types=__esmMin((()=>{OTLPExporterError=class extends Error{code;name=`OTLPExporterError`;data;constructor(message,code,data){super(message),this.data=data,this.code=code}}}));function validateTimeoutMillis(timeoutMillis){if(Number.isFinite(timeoutMillis)&&timeoutMillis>0)return timeoutMillis;throw Error(`Configuration: timeoutMillis is invalid, expected number greater than 0 (actual: '${timeoutMillis}')`)}function wrapStaticHeadersInFunction(headers){if(headers!=null)return async()=>headers}function mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration){return{timeoutMillis:validateTimeoutMillis(userProvidedConfiguration.timeoutMillis??fallbackConfiguration.timeoutMillis??defaultConfiguration.timeoutMillis),concurrencyLimit:userProvidedConfiguration.concurrencyLimit??fallbackConfiguration.concurrencyLimit??defaultConfiguration.concurrencyLimit,compression:userProvidedConfiguration.compression??fallbackConfiguration.compression??defaultConfiguration.compression}}function getSharedConfigurationDefaults(){return{timeoutMillis:1e4,concurrencyLimit:30,compression:`none`}}var init_shared_configuration=__esmMin((()=>{})),CompressionAlgorithm,init_legacy_node_configuration=__esmMin((()=>{(function(CompressionAlgorithm$1){CompressionAlgorithm$1.NONE=`none`,CompressionAlgorithm$1.GZIP=`gzip`})(CompressionAlgorithm||={})}));function createBoundedQueueExportPromiseHandler(options){return new BoundedQueueExportPromiseHandler(options.concurrencyLimit)}var BoundedQueueExportPromiseHandler,init_bounded_queue_export_promise_handler=__esmMin((()=>{BoundedQueueExportPromiseHandler=class{_concurrencyLimit;_sendingPromises=[];constructor(concurrencyLimit){this._concurrencyLimit=concurrencyLimit}pushPromise(promise){if(this.hasReachedLimit())throw Error(`Concurrency Limit reached`);this._sendingPromises.push(promise);let popPromise=()=>{let index=this._sendingPromises.indexOf(promise);this._sendingPromises.splice(index,1)};promise.then(popPromise,popPromise)}hasReachedLimit(){return this._sendingPromises.length>=this._concurrencyLimit}async awaitAll(){await Promise.all(this._sendingPromises)}}}));function isPartialSuccessResponse(response){return Object.prototype.hasOwnProperty.call(response,`partialSuccess`)}function createLoggingPartialSuccessResponseHandler(){return{handleResponse(response){response==null||!isPartialSuccessResponse(response)||response.partialSuccess==null||Object.keys(response.partialSuccess).length===0||diag.warn(`Received Partial Success response:`,JSON.stringify(response.partialSuccess))}}}var init_logging_response_handler=__esmMin((()=>{}));function createOtlpExportDelegate(components,settings){return new OTLPExportDelegate(components.transport,components.serializer,createLoggingPartialSuccessResponseHandler(),components.promiseHandler,settings.timeout)}var import_src$2,OTLPExportDelegate,init_otlp_export_delegate=__esmMin((()=>{import_src$2=require_src$8(),init_types(),init_logging_response_handler(),OTLPExportDelegate=class{_transport;_serializer;_responseHandler;_promiseQueue;_timeout;_diagLogger;constructor(_transport,_serializer,_responseHandler,_promiseQueue,_timeout){this._transport=_transport,this._serializer=_serializer,this._responseHandler=_responseHandler,this._promiseQueue=_promiseQueue,this._timeout=_timeout,this._diagLogger=diag.createComponentLogger({namespace:`OTLPExportDelegate`})}export(internalRepresentation,resultCallback){if(this._diagLogger.debug(`items to be sent`,internalRepresentation),this._promiseQueue.hasReachedLimit()){resultCallback({code:import_src$2.ExportResultCode.FAILED,error:Error(`Concurrent export limit reached`)});return}let serializedRequest=this._serializer.serializeRequest(internalRepresentation);if(serializedRequest==null){resultCallback({code:import_src$2.ExportResultCode.FAILED,error:Error(`Nothing to send`)});return}this._promiseQueue.pushPromise(this._transport.send(serializedRequest,this._timeout).then(response=>{if(response.status===`success`){if(response.data!=null)try{this._responseHandler.handleResponse(this._serializer.deserializeResponse(response.data))}catch(e){this._diagLogger.warn(`Export succeeded but could not deserialize response - is the response specification compliant?`,e,response.data)}resultCallback({code:import_src$2.ExportResultCode.SUCCESS});return}else if(response.status===`failure`&&response.error){resultCallback({code:import_src$2.ExportResultCode.FAILED,error:response.error});return}else response.status===`retryable`?resultCallback({code:import_src$2.ExportResultCode.FAILED,error:new OTLPExporterError(`Export failed with retryable status`)}):resultCallback({code:import_src$2.ExportResultCode.FAILED,error:new OTLPExporterError(`Export failed with unknown error`)})},reason=>resultCallback({code:import_src$2.ExportResultCode.FAILED,error:reason})))}forceFlush(){return this._promiseQueue.awaitAll()}async shutdown(){this._diagLogger.debug(`shutdown started`),await this.forceFlush(),this._transport.shutdown()}}}));function createOtlpNetworkExportDelegate(options,serializer,transport){return createOtlpExportDelegate({transport,serializer,promiseHandler:createBoundedQueueExportPromiseHandler(options)},{timeout:options.timeoutMillis})}var init_otlp_network_export_delegate=__esmMin((()=>{init_bounded_queue_export_promise_handler(),init_otlp_export_delegate()})),esm_exports=__export({CompressionAlgorithm:()=>CompressionAlgorithm,OTLPExporterBase:()=>OTLPExporterBase,OTLPExporterError:()=>OTLPExporterError,createOtlpNetworkExportDelegate:()=>createOtlpNetworkExportDelegate,getSharedConfigurationDefaults:()=>getSharedConfigurationDefaults,mergeOtlpSharedConfigurationWithDefaults:()=>mergeOtlpSharedConfigurationWithDefaults}),init_esm=__esmMin((()=>{init_OTLPExporterBase(),init_types(),init_shared_configuration(),init_legacy_node_configuration(),init_otlp_network_export_delegate()})),require_aspromise=__commonJSMin(((exports,module)=>{module.exports=asPromise;function asPromise(fn,ctx){for(var params=Array(arguments.length-1),offset=0,index=2,pending=!0;index<arguments.length;)params[offset++]=arguments[index++];return new Promise(function(resolve$1,reject){params[offset]=function(err){if(pending)if(pending=!1,err)reject(err);else{for(var params$1=Array(arguments.length-1),offset$1=0;offset$1<params$1.length;)params$1[offset$1++]=arguments[offset$1];resolve$1.apply(null,params$1)}};try{fn.apply(ctx||null,params)}catch(err){pending&&(pending=!1,reject(err))}})}})),require_base64=__commonJSMin((exports=>{var base64=exports;base64.length=function(string){var p$1=string.length;if(!p$1)return 0;for(var n=0;--p$1%4>1&&string.charAt(p$1)===`=`;)++n;return Math.ceil(string.length*3)/4-n};for(var b64=Array(64),s64=Array(123),i=0;i<64;)s64[b64[i]=i<26?i+65:i<52?i+71:i<62?i-4:i-59|43]=i++;base64.encode=function(buffer,start,end){for(var parts=null,chunk=[],i=0,j=0,t;start<end;){var b=buffer[start++];switch(j){case 0:chunk[i++]=b64[b>>2],t=(b&3)<<4,j=1;break;case 1:chunk[i++]=b64[t|b>>4],t=(b&15)<<2,j=2;break;case 2:chunk[i++]=b64[t|b>>6],chunk[i++]=b64[b&63],j=0;break}i>8191&&((parts||=[]).push(String.fromCharCode.apply(String,chunk)),i=0)}return j&&(chunk[i++]=b64[t],chunk[i++]=61,j===1&&(chunk[i++]=61)),parts?(i&&parts.push(String.fromCharCode.apply(String,chunk.slice(0,i))),parts.join(``)):String.fromCharCode.apply(String,chunk.slice(0,i))};var invalidEncoding=`invalid encoding`;base64.decode=function(string,buffer,offset){for(var start=offset,j=0,t,i=0;i<string.length;){var c=string.charCodeAt(i++);if(c===61&&j>1)break;if((c=s64[c])===void 0)throw Error(invalidEncoding);switch(j){case 0:t=c,j=1;break;case 1:buffer[offset++]=t<<2|(c&48)>>4,t=c,j=2;break;case 2:buffer[offset++]=(t&15)<<4|(c&60)>>2,t=c,j=3;break;case 3:buffer[offset++]=(t&3)<<6|c,j=0;break}}if(j===1)throw Error(invalidEncoding);return offset-start},base64.test=function(string){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string)}})),require_eventemitter=__commonJSMin(((exports,module)=>{module.exports=EventEmitter;function EventEmitter(){this._listeners={}}EventEmitter.prototype.on=function(evt,fn,ctx){return(this._listeners[evt]||(this._listeners[evt]=[])).push({fn,ctx:ctx||this}),this},EventEmitter.prototype.off=function(evt,fn){if(evt===void 0)this._listeners={};else if(fn===void 0)this._listeners[evt]=[];else for(var listeners=this._listeners[evt],i=0;i<listeners.length;)listeners[i].fn===fn?listeners.splice(i,1):++i;return this},EventEmitter.prototype.emit=function(evt){var listeners=this._listeners[evt];if(listeners){for(var args=[],i=1;i<arguments.length;)args.push(arguments[i++]);for(i=0;i<listeners.length;)listeners[i].fn.apply(listeners[i++].ctx,args)}return this}})),require_float=__commonJSMin(((exports,module)=>{module.exports=factory(factory);function factory(exports$1){return typeof Float32Array<`u`?(function(){var f32=new Float32Array([-0]),f8b=new Uint8Array(f32.buffer),le=f8b[3]===128;function writeFloat_f32_cpy(val,buf,pos){f32[0]=val,buf[pos]=f8b[0],buf[pos+1]=f8b[1],buf[pos+2]=f8b[2],buf[pos+3]=f8b[3]}function writeFloat_f32_rev(val,buf,pos){f32[0]=val,buf[pos]=f8b[3],buf[pos+1]=f8b[2],buf[pos+2]=f8b[1],buf[pos+3]=f8b[0]}exports$1.writeFloatLE=le?writeFloat_f32_cpy:writeFloat_f32_rev,exports$1.writeFloatBE=le?writeFloat_f32_rev:writeFloat_f32_cpy;function readFloat_f32_cpy(buf,pos){return f8b[0]=buf[pos],f8b[1]=buf[pos+1],f8b[2]=buf[pos+2],f8b[3]=buf[pos+3],f32[0]}function readFloat_f32_rev(buf,pos){return f8b[3]=buf[pos],f8b[2]=buf[pos+1],f8b[1]=buf[pos+2],f8b[0]=buf[pos+3],f32[0]}exports$1.readFloatLE=le?readFloat_f32_cpy:readFloat_f32_rev,exports$1.readFloatBE=le?readFloat_f32_rev:readFloat_f32_cpy})():(function(){function writeFloat_ieee754(writeUint,val,buf,pos){var sign=val<0?1:0;if(sign&&(val=-val),val===0)writeUint(1/val>0?0:2147483648,buf,pos);else if(isNaN(val))writeUint(2143289344,buf,pos);else if(val>34028234663852886e22)writeUint((sign<<31|2139095040)>>>0,buf,pos);else if(val<11754943508222875e-54)writeUint((sign<<31|Math.round(val/1401298464324817e-60))>>>0,buf,pos);else{var exponent=Math.floor(Math.log(val)/Math.LN2),mantissa=Math.round(val*2**-exponent*8388608)&8388607;writeUint((sign<<31|exponent+127<<23|mantissa)>>>0,buf,pos)}}exports$1.writeFloatLE=writeFloat_ieee754.bind(null,writeUintLE),exports$1.writeFloatBE=writeFloat_ieee754.bind(null,writeUintBE);function readFloat_ieee754(readUint,buf,pos){var uint=readUint(buf,pos),sign=(uint>>31)*2+1,exponent=uint>>>23&255,mantissa=uint&8388607;return exponent===255?mantissa?NaN:sign*(1/0):exponent===0?sign*1401298464324817e-60*mantissa:sign*2**(exponent-150)*(mantissa+8388608)}exports$1.readFloatLE=readFloat_ieee754.bind(null,readUintLE),exports$1.readFloatBE=readFloat_ieee754.bind(null,readUintBE)})(),typeof Float64Array<`u`?(function(){var f64=new Float64Array([-0]),f8b=new Uint8Array(f64.buffer),le=f8b[7]===128;function writeDouble_f64_cpy(val,buf,pos){f64[0]=val,buf[pos]=f8b[0],buf[pos+1]=f8b[1],buf[pos+2]=f8b[2],buf[pos+3]=f8b[3],buf[pos+4]=f8b[4],buf[pos+5]=f8b[5],buf[pos+6]=f8b[6],buf[pos+7]=f8b[7]}function writeDouble_f64_rev(val,buf,pos){f64[0]=val,buf[pos]=f8b[7],buf[pos+1]=f8b[6],buf[pos+2]=f8b[5],buf[pos+3]=f8b[4],buf[pos+4]=f8b[3],buf[pos+5]=f8b[2],buf[pos+6]=f8b[1],buf[pos+7]=f8b[0]}exports$1.writeDoubleLE=le?writeDouble_f64_cpy:writeDouble_f64_rev,exports$1.writeDoubleBE=le?writeDouble_f64_rev:writeDouble_f64_cpy;function readDouble_f64_cpy(buf,pos){return f8b[0]=buf[pos],f8b[1]=buf[pos+1],f8b[2]=buf[pos+2],f8b[3]=buf[pos+3],f8b[4]=buf[pos+4],f8b[5]=buf[pos+5],f8b[6]=buf[pos+6],f8b[7]=buf[pos+7],f64[0]}function readDouble_f64_rev(buf,pos){return f8b[7]=buf[pos],f8b[6]=buf[pos+1],f8b[5]=buf[pos+2],f8b[4]=buf[pos+3],f8b[3]=buf[pos+4],f8b[2]=buf[pos+5],f8b[1]=buf[pos+6],f8b[0]=buf[pos+7],f64[0]}exports$1.readDoubleLE=le?readDouble_f64_cpy:readDouble_f64_rev,exports$1.readDoubleBE=le?readDouble_f64_rev:readDouble_f64_cpy})():(function(){function writeDouble_ieee754(writeUint,off0,off1,val,buf,pos){var sign=val<0?1:0;if(sign&&(val=-val),val===0)writeUint(0,buf,pos+off0),writeUint(1/val>0?0:2147483648,buf,pos+off1);else if(isNaN(val))writeUint(0,buf,pos+off0),writeUint(2146959360,buf,pos+off1);else if(val>17976931348623157e292)writeUint(0,buf,pos+off0),writeUint((sign<<31|2146435072)>>>0,buf,pos+off1);else{var mantissa;if(val<22250738585072014e-324)mantissa=val/5e-324,writeUint(mantissa>>>0,buf,pos+off0),writeUint((sign<<31|mantissa/4294967296)>>>0,buf,pos+off1);else{var exponent=Math.floor(Math.log(val)/Math.LN2);exponent===1024&&(exponent=1023),mantissa=val*2**-exponent,writeUint(mantissa*4503599627370496>>>0,buf,pos+off0),writeUint((sign<<31|exponent+1023<<20|mantissa*1048576&1048575)>>>0,buf,pos+off1)}}}exports$1.writeDoubleLE=writeDouble_ieee754.bind(null,writeUintLE,0,4),exports$1.writeDoubleBE=writeDouble_ieee754.bind(null,writeUintBE,4,0);function readDouble_ieee754(readUint,off0,off1,buf,pos){var lo=readUint(buf,pos+off0),hi=readUint(buf,pos+off1),sign=(hi>>31)*2+1,exponent=hi>>>20&2047,mantissa=4294967296*(hi&1048575)+lo;return exponent===2047?mantissa?NaN:sign*(1/0):exponent===0?sign*5e-324*mantissa:sign*2**(exponent-1075)*(mantissa+4503599627370496)}exports$1.readDoubleLE=readDouble_ieee754.bind(null,readUintLE,0,4),exports$1.readDoubleBE=readDouble_ieee754.bind(null,readUintBE,4,0)})(),exports$1}function writeUintLE(val,buf,pos){buf[pos]=val&255,buf[pos+1]=val>>>8&255,buf[pos+2]=val>>>16&255,buf[pos+3]=val>>>24}function writeUintBE(val,buf,pos){buf[pos]=val>>>24,buf[pos+1]=val>>>16&255,buf[pos+2]=val>>>8&255,buf[pos+3]=val&255}function readUintLE(buf,pos){return(buf[pos]|buf[pos+1]<<8|buf[pos+2]<<16|buf[pos+3]<<24)>>>0}function readUintBE(buf,pos){return(buf[pos]<<24|buf[pos+1]<<16|buf[pos+2]<<8|buf[pos+3])>>>0}})),require_inquire=__commonJSMin(((exports,module)=>{module.exports=inquire;function inquire(moduleName){try{var mod=eval(`quire`.replace(/^/,`re`))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch{}return null}})),require_utf8=__commonJSMin((exports=>{var utf8=exports;utf8.length=function(string){for(var len=0,c=0,i=0;i<string.length;++i)c=string.charCodeAt(i),c<128?len+=1:c<2048?len+=2:(c&64512)==55296&&(string.charCodeAt(i+1)&64512)==56320?(++i,len+=4):len+=3;return len},utf8.read=function(buffer,start,end){if(end-start<1)return``;for(var parts=null,chunk=[],i=0,t;start<end;)t=buffer[start++],t<128?chunk[i++]=t:t>191&&t<224?chunk[i++]=(t&31)<<6|buffer[start++]&63:t>239&&t<365?(t=((t&7)<<18|(buffer[start++]&63)<<12|(buffer[start++]&63)<<6|buffer[start++]&63)-65536,chunk[i++]=55296+(t>>10),chunk[i++]=56320+(t&1023)):chunk[i++]=(t&15)<<12|(buffer[start++]&63)<<6|buffer[start++]&63,i>8191&&((parts||=[]).push(String.fromCharCode.apply(String,chunk)),i=0);return parts?(i&&parts.push(String.fromCharCode.apply(String,chunk.slice(0,i))),parts.join(``)):String.fromCharCode.apply(String,chunk.slice(0,i))},utf8.write=function(string,buffer,offset){for(var start=offset,c1,c2,i=0;i<string.length;++i)c1=string.charCodeAt(i),c1<128?buffer[offset++]=c1:c1<2048?(buffer[offset++]=c1>>6|192,buffer[offset++]=c1&63|128):(c1&64512)==55296&&((c2=string.charCodeAt(i+1))&64512)==56320?(c1=65536+((c1&1023)<<10)+(c2&1023),++i,buffer[offset++]=c1>>18|240,buffer[offset++]=c1>>12&63|128,buffer[offset++]=c1>>6&63|128,buffer[offset++]=c1&63|128):(buffer[offset++]=c1>>12|224,buffer[offset++]=c1>>6&63|128,buffer[offset++]=c1&63|128);return offset-start}})),require_pool=__commonJSMin(((exports,module)=>{module.exports=pool;function pool(alloc,slice,size){var SIZE=size||8192,MAX=SIZE>>>1,slab=null,offset=SIZE;return function(size$1){if(size$1<1||size$1>MAX)return alloc(size$1);offset+size$1>SIZE&&(slab=alloc(SIZE),offset=0);var buf=slice.call(slab,offset,offset+=size$1);return offset&7&&(offset=(offset|7)+1),buf}}})),require_longbits=__commonJSMin(((exports,module)=>{module.exports=LongBits;var util=require_minimal$1();function LongBits(lo,hi){this.lo=lo>>>0,this.hi=hi>>>0}var zero=LongBits.zero=new LongBits(0,0);zero.toNumber=function(){return 0},zero.zzEncode=zero.zzDecode=function(){return this},zero.length=function(){return 1};var zeroHash=LongBits.zeroHash=`\0\0\0\0\0\0\0\0`;LongBits.fromNumber=function(value){if(value===0)return zero;var sign=value<0;sign&&(value=-value);var lo=value>>>0,hi=(value-lo)/4294967296>>>0;return sign&&(hi=~hi>>>0,lo=~lo>>>0,++lo>4294967295&&(lo=0,++hi>4294967295&&(hi=0))),new LongBits(lo,hi)},LongBits.from=function(value){if(typeof value==`number`)return LongBits.fromNumber(value);if(util.isString(value))if(util.Long)value=util.Long.fromString(value);else return LongBits.fromNumber(parseInt(value,10));return value.low||value.high?new LongBits(value.low>>>0,value.high>>>0):zero},LongBits.prototype.toNumber=function(unsigned){if(!unsigned&&this.hi>>>31){var lo=~this.lo+1>>>0,hi=~this.hi>>>0;return lo||(hi=hi+1>>>0),-(lo+hi*4294967296)}return this.lo+this.hi*4294967296},LongBits.prototype.toLong=function(unsigned){return util.Long?new util.Long(this.lo|0,this.hi|0,!!unsigned):{low:this.lo|0,high:this.hi|0,unsigned:!!unsigned}};var charCodeAt=String.prototype.charCodeAt;LongBits.fromHash=function(hash){return hash===zeroHash?zero:new LongBits((charCodeAt.call(hash,0)|charCodeAt.call(hash,1)<<8|charCodeAt.call(hash,2)<<16|charCodeAt.call(hash,3)<<24)>>>0,(charCodeAt.call(hash,4)|charCodeAt.call(hash,5)<<8|charCodeAt.call(hash,6)<<16|charCodeAt.call(hash,7)<<24)>>>0)},LongBits.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},LongBits.prototype.zzEncode=function(){var mask=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^mask)>>>0,this.lo=(this.lo<<1^mask)>>>0,this},LongBits.prototype.zzDecode=function(){var mask=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^mask)>>>0,this.hi=(this.hi>>>1^mask)>>>0,this},LongBits.prototype.length=function(){var part0=this.lo,part1=(this.lo>>>28|this.hi<<4)>>>0,part2=this.hi>>>24;return part2===0?part1===0?part0<16384?part0<128?1:2:part0<2097152?3:4:part1<16384?part1<128?5:6:part1<2097152?7:8:part2<128?9:10}})),require_minimal$1=__commonJSMin((exports=>{var util=exports;util.asPromise=require_aspromise(),util.base64=require_base64(),util.EventEmitter=require_eventemitter(),util.float=require_float(),util.inquire=require_inquire(),util.utf8=require_utf8(),util.pool=require_pool(),util.LongBits=require_longbits(),util.isNode=!!(typeof global<`u`&&global&&global.process&&global.process.versions&&global.process.versions.node),util.global=util.isNode&&global||typeof window<`u`&&window||typeof self<`u`&&self||exports,util.emptyArray=Object.freeze?Object.freeze([]):[],util.emptyObject=Object.freeze?Object.freeze({}):{},util.isInteger=Number.isInteger||function(value){return typeof value==`number`&&isFinite(value)&&Math.floor(value)===value},util.isString=function(value){return typeof value==`string`||value instanceof String},util.isObject=function(value){return value&&typeof value==`object`},util.isset=util.isSet=function(obj,prop){var value=obj[prop];return value!=null&&obj.hasOwnProperty(prop)?typeof value!=`object`||(Array.isArray(value)?value.length:Object.keys(value).length)>0:!1},util.Buffer=(function(){try{var Buffer$1=util.inquire(`buffer`).Buffer;return Buffer$1.prototype.utf8Write?Buffer$1:null}catch{return null}})(),util._Buffer_from=null,util._Buffer_allocUnsafe=null,util.newBuffer=function(sizeOrArray){return typeof sizeOrArray==`number`?util.Buffer?util._Buffer_allocUnsafe(sizeOrArray):new util.Array(sizeOrArray):util.Buffer?util._Buffer_from(sizeOrArray):typeof Uint8Array>`u`?sizeOrArray:new Uint8Array(sizeOrArray)},util.Array=typeof Uint8Array<`u`?Uint8Array:Array,util.Long=util.global.dcodeIO&&util.global.dcodeIO.Long||util.global.Long||util.inquire(`long`),util.key2Re=/^true|false|0|1$/,util.key32Re=/^-?(?:0|[1-9][0-9]*)$/,util.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,util.longToHash=function(value){return value?util.LongBits.from(value).toHash():util.LongBits.zeroHash},util.longFromHash=function(hash,unsigned){var bits=util.LongBits.fromHash(hash);return util.Long?util.Long.fromBits(bits.lo,bits.hi,unsigned):bits.toNumber(!!unsigned)};function merge(dst,src,ifNotSet){for(var keys=Object.keys(src),i=0;i<keys.length;++i)(dst[keys[i]]===void 0||!ifNotSet)&&(dst[keys[i]]=src[keys[i]]);return dst}util.merge=merge,util.lcFirst=function(str){return str.charAt(0).toLowerCase()+str.substring(1)};function newError(name){function CustomError(message,properties){if(!(this instanceof CustomError))return new CustomError(message,properties);Object.defineProperty(this,`message`,{get:function(){return message}}),Error.captureStackTrace?Error.captureStackTrace(this,CustomError):Object.defineProperty(this,`stack`,{value:Error().stack||``}),properties&&merge(this,properties)}return CustomError.prototype=Object.create(Error.prototype,{constructor:{value:CustomError,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return name},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+`: `+this.message},writable:!0,enumerable:!1,configurable:!0}}),CustomError}util.newError=newError,util.ProtocolError=newError(`ProtocolError`),util.oneOfGetter=function(fieldNames){for(var fieldMap={},i=0;i<fieldNames.length;++i)fieldMap[fieldNames[i]]=1;return function(){for(var keys=Object.keys(this),i$1=keys.length-1;i$1>-1;--i$1)if(fieldMap[keys[i$1]]===1&&this[keys[i$1]]!==void 0&&this[keys[i$1]]!==null)return keys[i$1]}},util.oneOfSetter=function(fieldNames){return function(name){for(var i=0;i<fieldNames.length;++i)fieldNames[i]!==name&&delete this[fieldNames[i]]}},util.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},util._configure=function(){var Buffer$1=util.Buffer;if(!Buffer$1){util._Buffer_from=util._Buffer_allocUnsafe=null;return}util._Buffer_from=Buffer$1.from!==Uint8Array.from&&Buffer$1.from||function(value,encoding){return new Buffer$1(value,encoding)},util._Buffer_allocUnsafe=Buffer$1.allocUnsafe||function(size){return new Buffer$1(size)}}})),require_writer=__commonJSMin(((exports,module)=>{module.exports=Writer;var util=require_minimal$1(),BufferWriter,LongBits=util.LongBits,base64=util.base64,utf8=util.utf8;function Op(fn,len,val){this.fn=fn,this.len=len,this.next=void 0,this.val=val}function noop(){}function State(writer){this.head=writer.head,this.tail=writer.tail,this.len=writer.len,this.next=writer.states}function Writer(){this.len=0,this.head=new Op(noop,0,0),this.tail=this.head,this.states=null}var create=function(){return util.Buffer?function(){return(Writer.create=function(){return new BufferWriter})()}:function(){return new Writer}};Writer.create=create(),Writer.alloc=function(size){return new util.Array(size)},util.Array!==Array&&(Writer.alloc=util.pool(Writer.alloc,util.Array.prototype.subarray)),Writer.prototype._push=function(fn,len,val){return this.tail=this.tail.next=new Op(fn,len,val),this.len+=len,this};function writeByte(val,buf,pos){buf[pos]=val&255}function writeVarint32(val,buf,pos){for(;val>127;)buf[pos++]=val&127|128,val>>>=7;buf[pos]=val}function VarintOp(len,val){this.len=len,this.next=void 0,this.val=val}VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer.prototype.uint32=function(value){return this.len+=(this.tail=this.tail.next=new VarintOp((value>>>=0)<128?1:value<16384?2:value<2097152?3:value<268435456?4:5,value)).len,this},Writer.prototype.int32=function(value){return value<0?this._push(writeVarint64,10,LongBits.fromNumber(value)):this.uint32(value)},Writer.prototype.sint32=function(value){return this.uint32((value<<1^value>>31)>>>0)};function writeVarint64(val,buf,pos){for(;val.hi;)buf[pos++]=val.lo&127|128,val.lo=(val.lo>>>7|val.hi<<25)>>>0,val.hi>>>=7;for(;val.lo>127;)buf[pos++]=val.lo&127|128,val.lo>>>=7;buf[pos++]=val.lo}Writer.prototype.uint64=function(value){var bits=LongBits.from(value);return this._push(writeVarint64,bits.length(),bits)},Writer.prototype.int64=Writer.prototype.uint64,Writer.prototype.sint64=function(value){var bits=LongBits.from(value).zzEncode();return this._push(writeVarint64,bits.length(),bits)},Writer.prototype.bool=function(value){return this._push(writeByte,1,value?1:0)};function writeFixed32(val,buf,pos){buf[pos]=val&255,buf[pos+1]=val>>>8&255,buf[pos+2]=val>>>16&255,buf[pos+3]=val>>>24}Writer.prototype.fixed32=function(value){return this._push(writeFixed32,4,value>>>0)},Writer.prototype.sfixed32=Writer.prototype.fixed32,Writer.prototype.fixed64=function(value){var bits=LongBits.from(value);return this._push(writeFixed32,4,bits.lo)._push(writeFixed32,4,bits.hi)},Writer.prototype.sfixed64=Writer.prototype.fixed64,Writer.prototype.float=function(value){return this._push(util.float.writeFloatLE,4,value)},Writer.prototype.double=function(value){return this._push(util.float.writeDoubleLE,8,value)};var writeBytes=util.Array.prototype.set?function(val,buf,pos){buf.set(val,pos)}:function(val,buf,pos){for(var i=0;i<val.length;++i)buf[pos+i]=val[i]};Writer.prototype.bytes=function(value){var len=value.length>>>0;if(!len)return this._push(writeByte,1,0);if(util.isString(value)){var buf=Writer.alloc(len=base64.length(value));base64.decode(value,buf,0),value=buf}return this.uint32(len)._push(writeBytes,len,value)},Writer.prototype.string=function(value){var len=utf8.length(value);return len?this.uint32(len)._push(utf8.write,len,value):this._push(writeByte,1,0)},Writer.prototype.fork=function(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this},Writer.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this},Writer.prototype.ldelim=function(){var head=this.head,tail=this.tail,len=this.len;return this.reset().uint32(len),len&&(this.tail.next=head.next,this.tail=tail,this.len+=len),this},Writer.prototype.finish=function(){for(var head=this.head.next,buf=this.constructor.alloc(this.len),pos=0;head;)head.fn(head.val,buf,pos),pos+=head.len,head=head.next;return buf},Writer._configure=function(BufferWriter_){BufferWriter=BufferWriter_,Writer.create=create(),BufferWriter._configure()}})),require_writer_buffer=__commonJSMin(((exports,module)=>{module.exports=BufferWriter;var Writer=require_writer();(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util=require_minimal$1();function BufferWriter(){Writer.call(this)}BufferWriter._configure=function(){BufferWriter.alloc=util._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util.Buffer&&util.Buffer.prototype instanceof Uint8Array&&util.Buffer.prototype.set.name===`set`?function(val,buf,pos){buf.set(val,pos)}:function(val,buf,pos){if(val.copy)val.copy(buf,pos,0,val.length);else for(var i=0;i<val.length;)buf[pos++]=val[i++]}},BufferWriter.prototype.bytes=function(value){util.isString(value)&&(value=util._Buffer_from(value,`base64`));var len=value.length>>>0;return this.uint32(len),len&&this._push(BufferWriter.writeBytesBuffer,len,value),this};function writeStringBuffer(val,buf,pos){val.length<40?util.utf8.write(val,buf,pos):buf.utf8Write?buf.utf8Write(val,pos):buf.write(val,pos)}BufferWriter.prototype.string=function(value){var len=util.Buffer.byteLength(value);return this.uint32(len),len&&this._push(writeStringBuffer,len,value),this},BufferWriter._configure()})),require_reader=__commonJSMin(((exports,module)=>{module.exports=Reader;var util=require_minimal$1(),BufferReader,LongBits=util.LongBits,utf8=util.utf8;function indexOutOfRange(reader,writeLength){return RangeError(`index out of range: `+reader.pos+` + `+(writeLength||1)+` > `+reader.len)}function Reader(buffer){this.buf=buffer,this.pos=0,this.len=buffer.length}var create_array=typeof Uint8Array<`u`?function(buffer){if(buffer instanceof Uint8Array||Array.isArray(buffer))return new Reader(buffer);throw Error(`illegal buffer`)}:function(buffer){if(Array.isArray(buffer))return new Reader(buffer);throw Error(`illegal buffer`)},create=function(){return util.Buffer?function(buffer){return(Reader.create=function(buffer$1){return util.Buffer.isBuffer(buffer$1)?new BufferReader(buffer$1):create_array(buffer$1)})(buffer)}:create_array};Reader.create=create(),Reader.prototype._slice=util.Array.prototype.subarray||util.Array.prototype.slice,Reader.prototype.uint32=(function(){var value=4294967295;return function(){if(value=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(value=(value|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(value=(value|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(value=(value|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(value=(value|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return value;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return value}})(),Reader.prototype.int32=function(){return this.uint32()|0},Reader.prototype.sint32=function(){var value=this.uint32();return value>>>1^-(value&1)|0};function readLongVarint(){var bits=new LongBits(0,0),i=0;if(this.len-this.pos>4){for(;i<4;++i)if(bits.lo=(bits.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return bits;if(bits.lo=(bits.lo|(this.buf[this.pos]&127)<<28)>>>0,bits.hi=(bits.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return bits;i=0}else{for(;i<3;++i){if(this.pos>=this.len)throw indexOutOfRange(this);if(bits.lo=(bits.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return bits}return bits.lo=(bits.lo|(this.buf[this.pos++]&127)<<i*7)>>>0,bits}if(this.len-this.pos>4){for(;i<5;++i)if(bits.hi=(bits.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return bits}else for(;i<5;++i){if(this.pos>=this.len)throw indexOutOfRange(this);if(bits.hi=(bits.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return bits}throw Error(`invalid varint encoding`)}Reader.prototype.bool=function(){return this.uint32()!==0};function readFixed32_end(buf,end){return(buf[end-4]|buf[end-3]<<8|buf[end-2]<<16|buf[end-1]<<24)>>>0}Reader.prototype.fixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader.prototype.sfixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)|0};function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader.prototype.float=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var value=util.float.readFloatLE(this.buf,this.pos);return this.pos+=4,value},Reader.prototype.double=function(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var value=util.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,value},Reader.prototype.bytes=function(){var length=this.uint32(),start=this.pos,end=this.pos+length;if(end>this.len)throw indexOutOfRange(this,length);if(this.pos+=length,Array.isArray(this.buf))return this.buf.slice(start,end);if(start===end){var nativeBuffer=util.Buffer;return nativeBuffer?nativeBuffer.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,start,end)},Reader.prototype.string=function(){var bytes=this.bytes();return utf8.read(bytes,0,bytes.length)},Reader.prototype.skip=function(length){if(typeof length==`number`){if(this.pos+length>this.len)throw indexOutOfRange(this,length);this.pos+=length}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(this.buf[this.pos++]&128);return this},Reader.prototype.skipType=function(wireType){switch(wireType){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(wireType=this.uint32()&7)!=4;)this.skipType(wireType);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type `+wireType+` at offset `+this.pos)}return this},Reader._configure=function(BufferReader_){BufferReader=BufferReader_,Reader.create=create(),BufferReader._configure();var fn=util.Long?`toLong`:`toNumber`;util.merge(Reader.prototype,{int64:function(){return readLongVarint.call(this)[fn](!1)},uint64:function(){return readLongVarint.call(this)[fn](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[fn](!1)},fixed64:function(){return readFixed64.call(this)[fn](!0)},sfixed64:function(){return readFixed64.call(this)[fn](!1)}})}})),require_reader_buffer=__commonJSMin(((exports,module)=>{module.exports=BufferReader;var Reader=require_reader();(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util=require_minimal$1();function BufferReader(buffer){Reader.call(this,buffer)}BufferReader._configure=function(){util.Buffer&&(BufferReader.prototype._slice=util.Buffer.prototype.slice)},BufferReader.prototype.string=function(){var len=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+len,this.len)):this.buf.toString(`utf-8`,this.pos,this.pos=Math.min(this.pos+len,this.len))},BufferReader._configure()})),require_service=__commonJSMin(((exports,module)=>{module.exports=Service;var util=require_minimal$1();(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service;function Service(rpcImpl,requestDelimited,responseDelimited){if(typeof rpcImpl!=`function`)throw TypeError(`rpcImpl must be a function`);util.EventEmitter.call(this),this.rpcImpl=rpcImpl,this.requestDelimited=!!requestDelimited,this.responseDelimited=!!responseDelimited}Service.prototype.rpcCall=function rpcCall(method,requestCtor,responseCtor,request,callback){if(!request)throw TypeError(`request must be specified`);var self$1=this;if(!callback)return util.asPromise(rpcCall,self$1,method,requestCtor,responseCtor,request);if(!self$1.rpcImpl){setTimeout(function(){callback(Error(`already ended`))},0);return}try{return self$1.rpcImpl(method,requestCtor[self$1.requestDelimited?`encodeDelimited`:`encode`](request).finish(),function(err,response){if(err)return self$1.emit(`error`,err,method),callback(err);if(response===null){self$1.end(!0);return}if(!(response instanceof responseCtor))try{response=responseCtor[self$1.responseDelimited?`decodeDelimited`:`decode`](response)}catch(err$1){return self$1.emit(`error`,err$1,method),callback(err$1)}return self$1.emit(`data`,response,method),callback(null,response)})}catch(err){self$1.emit(`error`,err,method),setTimeout(function(){callback(err)},0);return}},Service.prototype.end=function(endedByRPC){return this.rpcImpl&&(endedByRPC||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit(`end`).off()),this}})),require_rpc=__commonJSMin((exports=>{var rpc=exports;rpc.Service=require_service()})),require_roots=__commonJSMin(((exports,module)=>{module.exports={}})),require_index_minimal=__commonJSMin((exports=>{var protobuf=exports;protobuf.build=`minimal`,protobuf.Writer=require_writer(),protobuf.BufferWriter=require_writer_buffer(),protobuf.Reader=require_reader(),protobuf.BufferReader=require_reader_buffer(),protobuf.util=require_minimal$1(),protobuf.rpc=require_rpc(),protobuf.roots=require_roots(),protobuf.configure=configure;function configure(){protobuf.util._configure(),protobuf.Writer._configure(protobuf.BufferWriter),protobuf.Reader._configure(protobuf.BufferReader)}configure()})),require_minimal=__commonJSMin(((exports,module)=>{module.exports=require_index_minimal()})),require_root=__commonJSMin(((exports,module)=>{Object.defineProperty(exports,`__esModule`,{value:!0});var $protobuf=require_minimal(),$Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util,$root=$protobuf.roots.default||($protobuf.roots.default={});$root.opentelemetry=(function(){var opentelemetry={};return opentelemetry.proto=(function(){var proto={};return proto.common=(function(){var common={};return common.v1=(function(){var v1={};return v1.AnyValue=(function(){function AnyValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}AnyValue.prototype.stringValue=null,AnyValue.prototype.boolValue=null,AnyValue.prototype.intValue=null,AnyValue.prototype.doubleValue=null,AnyValue.prototype.arrayValue=null,AnyValue.prototype.kvlistValue=null,AnyValue.prototype.bytesValue=null;var $oneOfFields;return Object.defineProperty(AnyValue.prototype,`value`,{get:$util.oneOfGetter($oneOfFields=[`stringValue`,`boolValue`,`intValue`,`doubleValue`,`arrayValue`,`kvlistValue`,`bytesValue`]),set:$util.oneOfSetter($oneOfFields)}),AnyValue.create=function(properties){return new AnyValue(properties)},AnyValue.encode=function(message,writer){return writer||=$Writer.create(),message.stringValue!=null&&Object.hasOwnProperty.call(message,`stringValue`)&&writer.uint32(10).string(message.stringValue),message.boolValue!=null&&Object.hasOwnProperty.call(message,`boolValue`)&&writer.uint32(16).bool(message.boolValue),message.intValue!=null&&Object.hasOwnProperty.call(message,`intValue`)&&writer.uint32(24).int64(message.intValue),message.doubleValue!=null&&Object.hasOwnProperty.call(message,`doubleValue`)&&writer.uint32(33).double(message.doubleValue),message.arrayValue!=null&&Object.hasOwnProperty.call(message,`arrayValue`)&&$root.opentelemetry.proto.common.v1.ArrayValue.encode(message.arrayValue,writer.uint32(42).fork()).ldelim(),message.kvlistValue!=null&&Object.hasOwnProperty.call(message,`kvlistValue`)&&$root.opentelemetry.proto.common.v1.KeyValueList.encode(message.kvlistValue,writer.uint32(50).fork()).ldelim(),message.bytesValue!=null&&Object.hasOwnProperty.call(message,`bytesValue`)&&writer.uint32(58).bytes(message.bytesValue),writer},AnyValue.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},AnyValue.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.AnyValue;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.stringValue=reader.string();break;case 2:message.boolValue=reader.bool();break;case 3:message.intValue=reader.int64();break;case 4:message.doubleValue=reader.double();break;case 5:message.arrayValue=$root.opentelemetry.proto.common.v1.ArrayValue.decode(reader,reader.uint32());break;case 6:message.kvlistValue=$root.opentelemetry.proto.common.v1.KeyValueList.decode(reader,reader.uint32());break;case 7:message.bytesValue=reader.bytes();break;default:reader.skipType(tag&7);break}}return message},AnyValue.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},AnyValue.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.stringValue!=null&&message.hasOwnProperty(`stringValue`)&&(properties.value=1,!$util.isString(message.stringValue)))return`stringValue: string expected`;if(message.boolValue!=null&&message.hasOwnProperty(`boolValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,typeof message.boolValue!=`boolean`)return`boolValue: boolean expected`}if(message.intValue!=null&&message.hasOwnProperty(`intValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!$util.isInteger(message.intValue)&&!(message.intValue&&$util.isInteger(message.intValue.low)&&$util.isInteger(message.intValue.high)))return`intValue: integer|Long expected`}if(message.doubleValue!=null&&message.hasOwnProperty(`doubleValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,typeof message.doubleValue!=`number`)return`doubleValue: number expected`}if(message.arrayValue!=null&&message.hasOwnProperty(`arrayValue`)){if(properties.value===1)return`value: multiple values`;properties.value=1;var error=$root.opentelemetry.proto.common.v1.ArrayValue.verify(message.arrayValue);if(error)return`arrayValue.`+error}if(message.kvlistValue!=null&&message.hasOwnProperty(`kvlistValue`)){if(properties.value===1)return`value: multiple values`;properties.value=1;var error=$root.opentelemetry.proto.common.v1.KeyValueList.verify(message.kvlistValue);if(error)return`kvlistValue.`+error}if(message.bytesValue!=null&&message.hasOwnProperty(`bytesValue`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!(message.bytesValue&&typeof message.bytesValue.length==`number`||$util.isString(message.bytesValue)))return`bytesValue: buffer expected`}return null},AnyValue.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.AnyValue)return object;var message=new $root.opentelemetry.proto.common.v1.AnyValue;if(object.stringValue!=null&&(message.stringValue=String(object.stringValue)),object.boolValue!=null&&(message.boolValue=!!object.boolValue),object.intValue!=null&&($util.Long?(message.intValue=$util.Long.fromValue(object.intValue)).unsigned=!1:typeof object.intValue==`string`?message.intValue=parseInt(object.intValue,10):typeof object.intValue==`number`?message.intValue=object.intValue:typeof object.intValue==`object`&&(message.intValue=new $util.LongBits(object.intValue.low>>>0,object.intValue.high>>>0).toNumber())),object.doubleValue!=null&&(message.doubleValue=Number(object.doubleValue)),object.arrayValue!=null){if(typeof object.arrayValue!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.AnyValue.arrayValue: object expected`);message.arrayValue=$root.opentelemetry.proto.common.v1.ArrayValue.fromObject(object.arrayValue)}if(object.kvlistValue!=null){if(typeof object.kvlistValue!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.AnyValue.kvlistValue: object expected`);message.kvlistValue=$root.opentelemetry.proto.common.v1.KeyValueList.fromObject(object.kvlistValue)}return object.bytesValue!=null&&(typeof object.bytesValue==`string`?$util.base64.decode(object.bytesValue,message.bytesValue=$util.newBuffer($util.base64.length(object.bytesValue)),0):object.bytesValue.length>=0&&(message.bytesValue=object.bytesValue)),message},AnyValue.toObject=function(message,options){options||={};var object={};return message.stringValue!=null&&message.hasOwnProperty(`stringValue`)&&(object.stringValue=message.stringValue,options.oneofs&&(object.value=`stringValue`)),message.boolValue!=null&&message.hasOwnProperty(`boolValue`)&&(object.boolValue=message.boolValue,options.oneofs&&(object.value=`boolValue`)),message.intValue!=null&&message.hasOwnProperty(`intValue`)&&(typeof message.intValue==`number`?object.intValue=options.longs===String?String(message.intValue):message.intValue:object.intValue=options.longs===String?$util.Long.prototype.toString.call(message.intValue):options.longs===Number?new $util.LongBits(message.intValue.low>>>0,message.intValue.high>>>0).toNumber():message.intValue,options.oneofs&&(object.value=`intValue`)),message.doubleValue!=null&&message.hasOwnProperty(`doubleValue`)&&(object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue,options.oneofs&&(object.value=`doubleValue`)),message.arrayValue!=null&&message.hasOwnProperty(`arrayValue`)&&(object.arrayValue=$root.opentelemetry.proto.common.v1.ArrayValue.toObject(message.arrayValue,options),options.oneofs&&(object.value=`arrayValue`)),message.kvlistValue!=null&&message.hasOwnProperty(`kvlistValue`)&&(object.kvlistValue=$root.opentelemetry.proto.common.v1.KeyValueList.toObject(message.kvlistValue,options),options.oneofs&&(object.value=`kvlistValue`)),message.bytesValue!=null&&message.hasOwnProperty(`bytesValue`)&&(object.bytesValue=options.bytes===String?$util.base64.encode(message.bytesValue,0,message.bytesValue.length):options.bytes===Array?Array.prototype.slice.call(message.bytesValue):message.bytesValue,options.oneofs&&(object.value=`bytesValue`)),object},AnyValue.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},AnyValue.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.AnyValue`},AnyValue})(),v1.ArrayValue=(function(){function ArrayValue(properties){if(this.values=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ArrayValue.prototype.values=$util.emptyArray,ArrayValue.create=function(properties){return new ArrayValue(properties)},ArrayValue.encode=function(message,writer){if(writer||=$Writer.create(),message.values!=null&&message.values.length)for(var i=0;i<message.values.length;++i)$root.opentelemetry.proto.common.v1.AnyValue.encode(message.values[i],writer.uint32(10).fork()).ldelim();return writer},ArrayValue.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ArrayValue.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.ArrayValue;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.values&&message.values.length||(message.values=[]),message.values.push($root.opentelemetry.proto.common.v1.AnyValue.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ArrayValue.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ArrayValue.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.values!=null&&message.hasOwnProperty(`values`)){if(!Array.isArray(message.values))return`values: array expected`;for(var i=0;i<message.values.length;++i){var error=$root.opentelemetry.proto.common.v1.AnyValue.verify(message.values[i]);if(error)return`values.`+error}}return null},ArrayValue.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.ArrayValue)return object;var message=new $root.opentelemetry.proto.common.v1.ArrayValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(`.opentelemetry.proto.common.v1.ArrayValue.values: array expected`);message.values=[];for(var i=0;i<object.values.length;++i){if(typeof object.values[i]!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.ArrayValue.values: object expected`);message.values[i]=$root.opentelemetry.proto.common.v1.AnyValue.fromObject(object.values[i])}}return message},ArrayValue.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.values=[]),message.values&&message.values.length){object.values=[];for(var j=0;j<message.values.length;++j)object.values[j]=$root.opentelemetry.proto.common.v1.AnyValue.toObject(message.values[j],options)}return object},ArrayValue.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ArrayValue.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.ArrayValue`},ArrayValue})(),v1.KeyValueList=(function(){function KeyValueList(properties){if(this.values=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return KeyValueList.prototype.values=$util.emptyArray,KeyValueList.create=function(properties){return new KeyValueList(properties)},KeyValueList.encode=function(message,writer){if(writer||=$Writer.create(),message.values!=null&&message.values.length)for(var i=0;i<message.values.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.values[i],writer.uint32(10).fork()).ldelim();return writer},KeyValueList.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},KeyValueList.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.KeyValueList;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.values&&message.values.length||(message.values=[]),message.values.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},KeyValueList.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},KeyValueList.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.values!=null&&message.hasOwnProperty(`values`)){if(!Array.isArray(message.values))return`values: array expected`;for(var i=0;i<message.values.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.values[i]);if(error)return`values.`+error}}return null},KeyValueList.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.KeyValueList)return object;var message=new $root.opentelemetry.proto.common.v1.KeyValueList;if(object.values){if(!Array.isArray(object.values))throw TypeError(`.opentelemetry.proto.common.v1.KeyValueList.values: array expected`);message.values=[];for(var i=0;i<object.values.length;++i){if(typeof object.values[i]!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.KeyValueList.values: object expected`);message.values[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.values[i])}}return message},KeyValueList.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.values=[]),message.values&&message.values.length){object.values=[];for(var j=0;j<message.values.length;++j)object.values[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.values[j],options)}return object},KeyValueList.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},KeyValueList.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.KeyValueList`},KeyValueList})(),v1.KeyValue=(function(){function KeyValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return KeyValue.prototype.key=null,KeyValue.prototype.value=null,KeyValue.create=function(properties){return new KeyValue(properties)},KeyValue.encode=function(message,writer){return writer||=$Writer.create(),message.key!=null&&Object.hasOwnProperty.call(message,`key`)&&writer.uint32(10).string(message.key),message.value!=null&&Object.hasOwnProperty.call(message,`value`)&&$root.opentelemetry.proto.common.v1.AnyValue.encode(message.value,writer.uint32(18).fork()).ldelim(),writer},KeyValue.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},KeyValue.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.KeyValue;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.key=reader.string();break;case 2:message.value=$root.opentelemetry.proto.common.v1.AnyValue.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},KeyValue.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},KeyValue.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.key!=null&&message.hasOwnProperty(`key`)&&!$util.isString(message.key))return`key: string expected`;if(message.value!=null&&message.hasOwnProperty(`value`)){var error=$root.opentelemetry.proto.common.v1.AnyValue.verify(message.value);if(error)return`value.`+error}return null},KeyValue.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.KeyValue)return object;var message=new $root.opentelemetry.proto.common.v1.KeyValue;if(object.key!=null&&(message.key=String(object.key)),object.value!=null){if(typeof object.value!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.KeyValue.value: object expected`);message.value=$root.opentelemetry.proto.common.v1.AnyValue.fromObject(object.value)}return message},KeyValue.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.key=``,object.value=null),message.key!=null&&message.hasOwnProperty(`key`)&&(object.key=message.key),message.value!=null&&message.hasOwnProperty(`value`)&&(object.value=$root.opentelemetry.proto.common.v1.AnyValue.toObject(message.value,options)),object},KeyValue.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},KeyValue.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.KeyValue`},KeyValue})(),v1.InstrumentationScope=(function(){function InstrumentationScope(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return InstrumentationScope.prototype.name=null,InstrumentationScope.prototype.version=null,InstrumentationScope.prototype.attributes=$util.emptyArray,InstrumentationScope.prototype.droppedAttributesCount=null,InstrumentationScope.create=function(properties){return new InstrumentationScope(properties)},InstrumentationScope.encode=function(message,writer){if(writer||=$Writer.create(),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(10).string(message.name),message.version!=null&&Object.hasOwnProperty.call(message,`version`)&&writer.uint32(18).string(message.version),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(26).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(32).uint32(message.droppedAttributesCount),writer},InstrumentationScope.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},InstrumentationScope.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.InstrumentationScope;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.name=reader.string();break;case 2:message.version=reader.string();break;case 3:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 4:message.droppedAttributesCount=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},InstrumentationScope.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},InstrumentationScope.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.version!=null&&message.hasOwnProperty(`version`)&&!$util.isString(message.version))return`version: string expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:null},InstrumentationScope.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.InstrumentationScope)return object;var message=new $root.opentelemetry.proto.common.v1.InstrumentationScope;if(object.name!=null&&(message.name=String(object.name)),object.version!=null&&(message.version=String(object.version)),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.common.v1.InstrumentationScope.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.common.v1.InstrumentationScope.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),message},InstrumentationScope.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults&&(object.name=``,object.version=``,object.droppedAttributesCount=0),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.version!=null&&message.hasOwnProperty(`version`)&&(object.version=message.version),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),object},InstrumentationScope.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},InstrumentationScope.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.InstrumentationScope`},InstrumentationScope})(),v1.EntityRef=(function(){function EntityRef(properties){if(this.idKeys=[],this.descriptionKeys=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return EntityRef.prototype.schemaUrl=null,EntityRef.prototype.type=null,EntityRef.prototype.idKeys=$util.emptyArray,EntityRef.prototype.descriptionKeys=$util.emptyArray,EntityRef.create=function(properties){return new EntityRef(properties)},EntityRef.encode=function(message,writer){if(writer||=$Writer.create(),message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(10).string(message.schemaUrl),message.type!=null&&Object.hasOwnProperty.call(message,`type`)&&writer.uint32(18).string(message.type),message.idKeys!=null&&message.idKeys.length)for(var i=0;i<message.idKeys.length;++i)writer.uint32(26).string(message.idKeys[i]);if(message.descriptionKeys!=null&&message.descriptionKeys.length)for(var i=0;i<message.descriptionKeys.length;++i)writer.uint32(34).string(message.descriptionKeys[i]);return writer},EntityRef.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},EntityRef.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.common.v1.EntityRef;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.schemaUrl=reader.string();break;case 2:message.type=reader.string();break;case 3:message.idKeys&&message.idKeys.length||(message.idKeys=[]),message.idKeys.push(reader.string());break;case 4:message.descriptionKeys&&message.descriptionKeys.length||(message.descriptionKeys=[]),message.descriptionKeys.push(reader.string());break;default:reader.skipType(tag&7);break}}return message},EntityRef.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},EntityRef.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl))return`schemaUrl: string expected`;if(message.type!=null&&message.hasOwnProperty(`type`)&&!$util.isString(message.type))return`type: string expected`;if(message.idKeys!=null&&message.hasOwnProperty(`idKeys`)){if(!Array.isArray(message.idKeys))return`idKeys: array expected`;for(var i=0;i<message.idKeys.length;++i)if(!$util.isString(message.idKeys[i]))return`idKeys: string[] expected`}if(message.descriptionKeys!=null&&message.hasOwnProperty(`descriptionKeys`)){if(!Array.isArray(message.descriptionKeys))return`descriptionKeys: array expected`;for(var i=0;i<message.descriptionKeys.length;++i)if(!$util.isString(message.descriptionKeys[i]))return`descriptionKeys: string[] expected`}return null},EntityRef.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.common.v1.EntityRef)return object;var message=new $root.opentelemetry.proto.common.v1.EntityRef;if(object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),object.type!=null&&(message.type=String(object.type)),object.idKeys){if(!Array.isArray(object.idKeys))throw TypeError(`.opentelemetry.proto.common.v1.EntityRef.idKeys: array expected`);message.idKeys=[];for(var i=0;i<object.idKeys.length;++i)message.idKeys[i]=String(object.idKeys[i])}if(object.descriptionKeys){if(!Array.isArray(object.descriptionKeys))throw TypeError(`.opentelemetry.proto.common.v1.EntityRef.descriptionKeys: array expected`);message.descriptionKeys=[];for(var i=0;i<object.descriptionKeys.length;++i)message.descriptionKeys[i]=String(object.descriptionKeys[i])}return message},EntityRef.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.idKeys=[],object.descriptionKeys=[]),options.defaults&&(object.schemaUrl=``,object.type=``),message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),message.type!=null&&message.hasOwnProperty(`type`)&&(object.type=message.type),message.idKeys&&message.idKeys.length){object.idKeys=[];for(var j=0;j<message.idKeys.length;++j)object.idKeys[j]=message.idKeys[j]}if(message.descriptionKeys&&message.descriptionKeys.length){object.descriptionKeys=[];for(var j=0;j<message.descriptionKeys.length;++j)object.descriptionKeys[j]=message.descriptionKeys[j]}return object},EntityRef.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},EntityRef.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.common.v1.EntityRef`},EntityRef})(),v1})(),common})(),proto.resource=(function(){var resource={};return resource.v1=(function(){var v1={};return v1.Resource=(function(){function Resource(properties){if(this.attributes=[],this.entityRefs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Resource.prototype.attributes=$util.emptyArray,Resource.prototype.droppedAttributesCount=null,Resource.prototype.entityRefs=$util.emptyArray,Resource.create=function(properties){return new Resource(properties)},Resource.encode=function(message,writer){if(writer||=$Writer.create(),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(10).fork()).ldelim();if(message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(16).uint32(message.droppedAttributesCount),message.entityRefs!=null&&message.entityRefs.length)for(var i=0;i<message.entityRefs.length;++i)$root.opentelemetry.proto.common.v1.EntityRef.encode(message.entityRefs[i],writer.uint32(26).fork()).ldelim();return writer},Resource.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Resource.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.resource.v1.Resource;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.droppedAttributesCount=reader.uint32();break;case 3:message.entityRefs&&message.entityRefs.length||(message.entityRefs=[]),message.entityRefs.push($root.opentelemetry.proto.common.v1.EntityRef.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Resource.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Resource.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount))return`droppedAttributesCount: integer expected`;if(message.entityRefs!=null&&message.hasOwnProperty(`entityRefs`)){if(!Array.isArray(message.entityRefs))return`entityRefs: array expected`;for(var i=0;i<message.entityRefs.length;++i){var error=$root.opentelemetry.proto.common.v1.EntityRef.verify(message.entityRefs[i]);if(error)return`entityRefs.`+error}}return null},Resource.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.resource.v1.Resource)return object;var message=new $root.opentelemetry.proto.resource.v1.Resource;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.resource.v1.Resource.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.resource.v1.Resource.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.entityRefs){if(!Array.isArray(object.entityRefs))throw TypeError(`.opentelemetry.proto.resource.v1.Resource.entityRefs: array expected`);message.entityRefs=[];for(var i=0;i<object.entityRefs.length;++i){if(typeof object.entityRefs[i]!=`object`)throw TypeError(`.opentelemetry.proto.resource.v1.Resource.entityRefs: object expected`);message.entityRefs[i]=$root.opentelemetry.proto.common.v1.EntityRef.fromObject(object.entityRefs[i])}}return message},Resource.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[],object.entityRefs=[]),options.defaults&&(object.droppedAttributesCount=0),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.entityRefs&&message.entityRefs.length){object.entityRefs=[];for(var j=0;j<message.entityRefs.length;++j)object.entityRefs[j]=$root.opentelemetry.proto.common.v1.EntityRef.toObject(message.entityRefs[j],options)}return object},Resource.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Resource.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.resource.v1.Resource`},Resource})(),v1})(),resource})(),proto.trace=(function(){var trace$1={};return trace$1.v1=(function(){var v1={};return v1.TracesData=(function(){function TracesData(properties){if(this.resourceSpans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return TracesData.prototype.resourceSpans=$util.emptyArray,TracesData.create=function(properties){return new TracesData(properties)},TracesData.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceSpans!=null&&message.resourceSpans.length)for(var i=0;i<message.resourceSpans.length;++i)$root.opentelemetry.proto.trace.v1.ResourceSpans.encode(message.resourceSpans[i],writer.uint32(10).fork()).ldelim();return writer},TracesData.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},TracesData.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.TracesData;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceSpans&&message.resourceSpans.length||(message.resourceSpans=[]),message.resourceSpans.push($root.opentelemetry.proto.trace.v1.ResourceSpans.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},TracesData.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},TracesData.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceSpans!=null&&message.hasOwnProperty(`resourceSpans`)){if(!Array.isArray(message.resourceSpans))return`resourceSpans: array expected`;for(var i=0;i<message.resourceSpans.length;++i){var error=$root.opentelemetry.proto.trace.v1.ResourceSpans.verify(message.resourceSpans[i]);if(error)return`resourceSpans.`+error}}return null},TracesData.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.TracesData)return object;var message=new $root.opentelemetry.proto.trace.v1.TracesData;if(object.resourceSpans){if(!Array.isArray(object.resourceSpans))throw TypeError(`.opentelemetry.proto.trace.v1.TracesData.resourceSpans: array expected`);message.resourceSpans=[];for(var i=0;i<object.resourceSpans.length;++i){if(typeof object.resourceSpans[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.TracesData.resourceSpans: object expected`);message.resourceSpans[i]=$root.opentelemetry.proto.trace.v1.ResourceSpans.fromObject(object.resourceSpans[i])}}return message},TracesData.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceSpans=[]),message.resourceSpans&&message.resourceSpans.length){object.resourceSpans=[];for(var j=0;j<message.resourceSpans.length;++j)object.resourceSpans[j]=$root.opentelemetry.proto.trace.v1.ResourceSpans.toObject(message.resourceSpans[j],options)}return object},TracesData.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},TracesData.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.TracesData`},TracesData})(),v1.ResourceSpans=(function(){function ResourceSpans(properties){if(this.scopeSpans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ResourceSpans.prototype.resource=null,ResourceSpans.prototype.scopeSpans=$util.emptyArray,ResourceSpans.prototype.schemaUrl=null,ResourceSpans.create=function(properties){return new ResourceSpans(properties)},ResourceSpans.encode=function(message,writer){if(writer||=$Writer.create(),message.resource!=null&&Object.hasOwnProperty.call(message,`resource`)&&$root.opentelemetry.proto.resource.v1.Resource.encode(message.resource,writer.uint32(10).fork()).ldelim(),message.scopeSpans!=null&&message.scopeSpans.length)for(var i=0;i<message.scopeSpans.length;++i)$root.opentelemetry.proto.trace.v1.ScopeSpans.encode(message.scopeSpans[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ResourceSpans.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ResourceSpans.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.ResourceSpans;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resource=$root.opentelemetry.proto.resource.v1.Resource.decode(reader,reader.uint32());break;case 2:message.scopeSpans&&message.scopeSpans.length||(message.scopeSpans=[]),message.scopeSpans.push($root.opentelemetry.proto.trace.v1.ScopeSpans.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ResourceSpans.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ResourceSpans.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resource!=null&&message.hasOwnProperty(`resource`)){var error=$root.opentelemetry.proto.resource.v1.Resource.verify(message.resource);if(error)return`resource.`+error}if(message.scopeSpans!=null&&message.hasOwnProperty(`scopeSpans`)){if(!Array.isArray(message.scopeSpans))return`scopeSpans: array expected`;for(var i=0;i<message.scopeSpans.length;++i){var error=$root.opentelemetry.proto.trace.v1.ScopeSpans.verify(message.scopeSpans[i]);if(error)return`scopeSpans.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ResourceSpans.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.ResourceSpans)return object;var message=new $root.opentelemetry.proto.trace.v1.ResourceSpans;if(object.resource!=null){if(typeof object.resource!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ResourceSpans.resource: object expected`);message.resource=$root.opentelemetry.proto.resource.v1.Resource.fromObject(object.resource)}if(object.scopeSpans){if(!Array.isArray(object.scopeSpans))throw TypeError(`.opentelemetry.proto.trace.v1.ResourceSpans.scopeSpans: array expected`);message.scopeSpans=[];for(var i=0;i<object.scopeSpans.length;++i){if(typeof object.scopeSpans[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ResourceSpans.scopeSpans: object expected`);message.scopeSpans[i]=$root.opentelemetry.proto.trace.v1.ScopeSpans.fromObject(object.scopeSpans[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ResourceSpans.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.scopeSpans=[]),options.defaults&&(object.resource=null,object.schemaUrl=``),message.resource!=null&&message.hasOwnProperty(`resource`)&&(object.resource=$root.opentelemetry.proto.resource.v1.Resource.toObject(message.resource,options)),message.scopeSpans&&message.scopeSpans.length){object.scopeSpans=[];for(var j=0;j<message.scopeSpans.length;++j)object.scopeSpans[j]=$root.opentelemetry.proto.trace.v1.ScopeSpans.toObject(message.scopeSpans[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ResourceSpans.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ResourceSpans.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.ResourceSpans`},ResourceSpans})(),v1.ScopeSpans=(function(){function ScopeSpans(properties){if(this.spans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ScopeSpans.prototype.scope=null,ScopeSpans.prototype.spans=$util.emptyArray,ScopeSpans.prototype.schemaUrl=null,ScopeSpans.create=function(properties){return new ScopeSpans(properties)},ScopeSpans.encode=function(message,writer){if(writer||=$Writer.create(),message.scope!=null&&Object.hasOwnProperty.call(message,`scope`)&&$root.opentelemetry.proto.common.v1.InstrumentationScope.encode(message.scope,writer.uint32(10).fork()).ldelim(),message.spans!=null&&message.spans.length)for(var i=0;i<message.spans.length;++i)$root.opentelemetry.proto.trace.v1.Span.encode(message.spans[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ScopeSpans.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ScopeSpans.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.ScopeSpans;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.decode(reader,reader.uint32());break;case 2:message.spans&&message.spans.length||(message.spans=[]),message.spans.push($root.opentelemetry.proto.trace.v1.Span.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ScopeSpans.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ScopeSpans.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.scope!=null&&message.hasOwnProperty(`scope`)){var error=$root.opentelemetry.proto.common.v1.InstrumentationScope.verify(message.scope);if(error)return`scope.`+error}if(message.spans!=null&&message.hasOwnProperty(`spans`)){if(!Array.isArray(message.spans))return`spans: array expected`;for(var i=0;i<message.spans.length;++i){var error=$root.opentelemetry.proto.trace.v1.Span.verify(message.spans[i]);if(error)return`spans.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ScopeSpans.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.ScopeSpans)return object;var message=new $root.opentelemetry.proto.trace.v1.ScopeSpans;if(object.scope!=null){if(typeof object.scope!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ScopeSpans.scope: object expected`);message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.fromObject(object.scope)}if(object.spans){if(!Array.isArray(object.spans))throw TypeError(`.opentelemetry.proto.trace.v1.ScopeSpans.spans: array expected`);message.spans=[];for(var i=0;i<object.spans.length;++i){if(typeof object.spans[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.ScopeSpans.spans: object expected`);message.spans[i]=$root.opentelemetry.proto.trace.v1.Span.fromObject(object.spans[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ScopeSpans.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.spans=[]),options.defaults&&(object.scope=null,object.schemaUrl=``),message.scope!=null&&message.hasOwnProperty(`scope`)&&(object.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.toObject(message.scope,options)),message.spans&&message.spans.length){object.spans=[];for(var j=0;j<message.spans.length;++j)object.spans[j]=$root.opentelemetry.proto.trace.v1.Span.toObject(message.spans[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ScopeSpans.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ScopeSpans.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.ScopeSpans`},ScopeSpans})(),v1.Span=(function(){function Span(properties){if(this.attributes=[],this.events=[],this.links=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Span.prototype.traceId=null,Span.prototype.spanId=null,Span.prototype.traceState=null,Span.prototype.parentSpanId=null,Span.prototype.flags=null,Span.prototype.name=null,Span.prototype.kind=null,Span.prototype.startTimeUnixNano=null,Span.prototype.endTimeUnixNano=null,Span.prototype.attributes=$util.emptyArray,Span.prototype.droppedAttributesCount=null,Span.prototype.events=$util.emptyArray,Span.prototype.droppedEventsCount=null,Span.prototype.links=$util.emptyArray,Span.prototype.droppedLinksCount=null,Span.prototype.status=null,Span.create=function(properties){return new Span(properties)},Span.encode=function(message,writer){if(writer||=$Writer.create(),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(10).bytes(message.traceId),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(18).bytes(message.spanId),message.traceState!=null&&Object.hasOwnProperty.call(message,`traceState`)&&writer.uint32(26).string(message.traceState),message.parentSpanId!=null&&Object.hasOwnProperty.call(message,`parentSpanId`)&&writer.uint32(34).bytes(message.parentSpanId),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(42).string(message.name),message.kind!=null&&Object.hasOwnProperty.call(message,`kind`)&&writer.uint32(48).int32(message.kind),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(57).fixed64(message.startTimeUnixNano),message.endTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`endTimeUnixNano`)&&writer.uint32(65).fixed64(message.endTimeUnixNano),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(74).fork()).ldelim();if(message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(80).uint32(message.droppedAttributesCount),message.events!=null&&message.events.length)for(var i=0;i<message.events.length;++i)$root.opentelemetry.proto.trace.v1.Span.Event.encode(message.events[i],writer.uint32(90).fork()).ldelim();if(message.droppedEventsCount!=null&&Object.hasOwnProperty.call(message,`droppedEventsCount`)&&writer.uint32(96).uint32(message.droppedEventsCount),message.links!=null&&message.links.length)for(var i=0;i<message.links.length;++i)$root.opentelemetry.proto.trace.v1.Span.Link.encode(message.links[i],writer.uint32(106).fork()).ldelim();return message.droppedLinksCount!=null&&Object.hasOwnProperty.call(message,`droppedLinksCount`)&&writer.uint32(112).uint32(message.droppedLinksCount),message.status!=null&&Object.hasOwnProperty.call(message,`status`)&&$root.opentelemetry.proto.trace.v1.Status.encode(message.status,writer.uint32(122).fork()).ldelim(),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(133).fixed32(message.flags),writer},Span.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Span.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Span;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.traceId=reader.bytes();break;case 2:message.spanId=reader.bytes();break;case 3:message.traceState=reader.string();break;case 4:message.parentSpanId=reader.bytes();break;case 16:message.flags=reader.fixed32();break;case 5:message.name=reader.string();break;case 6:message.kind=reader.int32();break;case 7:message.startTimeUnixNano=reader.fixed64();break;case 8:message.endTimeUnixNano=reader.fixed64();break;case 9:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 10:message.droppedAttributesCount=reader.uint32();break;case 11:message.events&&message.events.length||(message.events=[]),message.events.push($root.opentelemetry.proto.trace.v1.Span.Event.decode(reader,reader.uint32()));break;case 12:message.droppedEventsCount=reader.uint32();break;case 13:message.links&&message.links.length||(message.links=[]),message.links.push($root.opentelemetry.proto.trace.v1.Span.Link.decode(reader,reader.uint32()));break;case 14:message.droppedLinksCount=reader.uint32();break;case 15:message.status=$root.opentelemetry.proto.trace.v1.Status.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},Span.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Span.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId)))return`traceId: buffer expected`;if(message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId)))return`spanId: buffer expected`;if(message.traceState!=null&&message.hasOwnProperty(`traceState`)&&!$util.isString(message.traceState))return`traceState: string expected`;if(message.parentSpanId!=null&&message.hasOwnProperty(`parentSpanId`)&&!(message.parentSpanId&&typeof message.parentSpanId.length==`number`||$util.isString(message.parentSpanId)))return`parentSpanId: buffer expected`;if(message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags))return`flags: integer expected`;if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.kind!=null&&message.hasOwnProperty(`kind`))switch(message.kind){default:return`kind: enum value expected`;case 0:case 1:case 2:case 3:case 4:case 5:break}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.endTimeUnixNano!=null&&message.hasOwnProperty(`endTimeUnixNano`)&&!$util.isInteger(message.endTimeUnixNano)&&!(message.endTimeUnixNano&&$util.isInteger(message.endTimeUnixNano.low)&&$util.isInteger(message.endTimeUnixNano.high)))return`endTimeUnixNano: integer|Long expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount))return`droppedAttributesCount: integer expected`;if(message.events!=null&&message.hasOwnProperty(`events`)){if(!Array.isArray(message.events))return`events: array expected`;for(var i=0;i<message.events.length;++i){var error=$root.opentelemetry.proto.trace.v1.Span.Event.verify(message.events[i]);if(error)return`events.`+error}}if(message.droppedEventsCount!=null&&message.hasOwnProperty(`droppedEventsCount`)&&!$util.isInteger(message.droppedEventsCount))return`droppedEventsCount: integer expected`;if(message.links!=null&&message.hasOwnProperty(`links`)){if(!Array.isArray(message.links))return`links: array expected`;for(var i=0;i<message.links.length;++i){var error=$root.opentelemetry.proto.trace.v1.Span.Link.verify(message.links[i]);if(error)return`links.`+error}}if(message.droppedLinksCount!=null&&message.hasOwnProperty(`droppedLinksCount`)&&!$util.isInteger(message.droppedLinksCount))return`droppedLinksCount: integer expected`;if(message.status!=null&&message.hasOwnProperty(`status`)){var error=$root.opentelemetry.proto.trace.v1.Status.verify(message.status);if(error)return`status.`+error}return null},Span.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Span)return object;var message=new $root.opentelemetry.proto.trace.v1.Span;switch(object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.traceState!=null&&(message.traceState=String(object.traceState)),object.parentSpanId!=null&&(typeof object.parentSpanId==`string`?$util.base64.decode(object.parentSpanId,message.parentSpanId=$util.newBuffer($util.base64.length(object.parentSpanId)),0):object.parentSpanId.length>=0&&(message.parentSpanId=object.parentSpanId)),object.flags!=null&&(message.flags=object.flags>>>0),object.name!=null&&(message.name=String(object.name)),object.kind){default:if(typeof object.kind==`number`){message.kind=object.kind;break}break;case`SPAN_KIND_UNSPECIFIED`:case 0:message.kind=0;break;case`SPAN_KIND_INTERNAL`:case 1:message.kind=1;break;case`SPAN_KIND_SERVER`:case 2:message.kind=2;break;case`SPAN_KIND_CLIENT`:case 3:message.kind=3;break;case`SPAN_KIND_PRODUCER`:case 4:message.kind=4;break;case`SPAN_KIND_CONSUMER`:case 5:message.kind=5;break}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.endTimeUnixNano!=null&&($util.Long?(message.endTimeUnixNano=$util.Long.fromValue(object.endTimeUnixNano)).unsigned=!1:typeof object.endTimeUnixNano==`string`?message.endTimeUnixNano=parseInt(object.endTimeUnixNano,10):typeof object.endTimeUnixNano==`number`?message.endTimeUnixNano=object.endTimeUnixNano:typeof object.endTimeUnixNano==`object`&&(message.endTimeUnixNano=new $util.LongBits(object.endTimeUnixNano.low>>>0,object.endTimeUnixNano.high>>>0).toNumber())),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.trace.v1.Span.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.events){if(!Array.isArray(object.events))throw TypeError(`.opentelemetry.proto.trace.v1.Span.events: array expected`);message.events=[];for(var i=0;i<object.events.length;++i){if(typeof object.events[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.events: object expected`);message.events[i]=$root.opentelemetry.proto.trace.v1.Span.Event.fromObject(object.events[i])}}if(object.droppedEventsCount!=null&&(message.droppedEventsCount=object.droppedEventsCount>>>0),object.links){if(!Array.isArray(object.links))throw TypeError(`.opentelemetry.proto.trace.v1.Span.links: array expected`);message.links=[];for(var i=0;i<object.links.length;++i){if(typeof object.links[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.links: object expected`);message.links[i]=$root.opentelemetry.proto.trace.v1.Span.Link.fromObject(object.links[i])}}if(object.droppedLinksCount!=null&&(message.droppedLinksCount=object.droppedLinksCount>>>0),object.status!=null){if(typeof object.status!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.status: object expected`);message.status=$root.opentelemetry.proto.trace.v1.Status.fromObject(object.status)}return message},Span.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[],object.events=[],object.links=[]),options.defaults){if(options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId))),options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),object.traceState=``,options.bytes===String?object.parentSpanId=``:(object.parentSpanId=[],options.bytes!==Array&&(object.parentSpanId=$util.newBuffer(object.parentSpanId))),object.name=``,object.kind=options.enums===String?`SPAN_KIND_UNSPECIFIED`:0,$util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.endTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.endTimeUnixNano=options.longs===String?`0`:0;object.droppedAttributesCount=0,object.droppedEventsCount=0,object.droppedLinksCount=0,object.status=null,object.flags=0}if(message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.traceState!=null&&message.hasOwnProperty(`traceState`)&&(object.traceState=message.traceState),message.parentSpanId!=null&&message.hasOwnProperty(`parentSpanId`)&&(object.parentSpanId=options.bytes===String?$util.base64.encode(message.parentSpanId,0,message.parentSpanId.length):options.bytes===Array?Array.prototype.slice.call(message.parentSpanId):message.parentSpanId),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.kind!=null&&message.hasOwnProperty(`kind`)&&(object.kind=options.enums===String?$root.opentelemetry.proto.trace.v1.Span.SpanKind[message.kind]===void 0?message.kind:$root.opentelemetry.proto.trace.v1.Span.SpanKind[message.kind]:message.kind),message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.endTimeUnixNano!=null&&message.hasOwnProperty(`endTimeUnixNano`)&&(typeof message.endTimeUnixNano==`number`?object.endTimeUnixNano=options.longs===String?String(message.endTimeUnixNano):message.endTimeUnixNano:object.endTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.endTimeUnixNano):options.longs===Number?new $util.LongBits(message.endTimeUnixNano.low>>>0,message.endTimeUnixNano.high>>>0).toNumber():message.endTimeUnixNano),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}if(message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.events&&message.events.length){object.events=[];for(var j=0;j<message.events.length;++j)object.events[j]=$root.opentelemetry.proto.trace.v1.Span.Event.toObject(message.events[j],options)}if(message.droppedEventsCount!=null&&message.hasOwnProperty(`droppedEventsCount`)&&(object.droppedEventsCount=message.droppedEventsCount),message.links&&message.links.length){object.links=[];for(var j=0;j<message.links.length;++j)object.links[j]=$root.opentelemetry.proto.trace.v1.Span.Link.toObject(message.links[j],options)}return message.droppedLinksCount!=null&&message.hasOwnProperty(`droppedLinksCount`)&&(object.droppedLinksCount=message.droppedLinksCount),message.status!=null&&message.hasOwnProperty(`status`)&&(object.status=$root.opentelemetry.proto.trace.v1.Status.toObject(message.status,options)),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},Span.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Span.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Span`},Span.SpanKind=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`SPAN_KIND_UNSPECIFIED`]=0,values[valuesById[1]=`SPAN_KIND_INTERNAL`]=1,values[valuesById[2]=`SPAN_KIND_SERVER`]=2,values[valuesById[3]=`SPAN_KIND_CLIENT`]=3,values[valuesById[4]=`SPAN_KIND_PRODUCER`]=4,values[valuesById[5]=`SPAN_KIND_CONSUMER`]=5,values})(),Span.Event=(function(){function Event(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Event.prototype.timeUnixNano=null,Event.prototype.name=null,Event.prototype.attributes=$util.emptyArray,Event.prototype.droppedAttributesCount=null,Event.create=function(properties){return new Event(properties)},Event.encode=function(message,writer){if(writer||=$Writer.create(),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(9).fixed64(message.timeUnixNano),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(18).string(message.name),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(26).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(32).uint32(message.droppedAttributesCount),writer},Event.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Event.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Span.Event;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.timeUnixNano=reader.fixed64();break;case 2:message.name=reader.string();break;case 3:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 4:message.droppedAttributesCount=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},Event.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Event.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:null},Event.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Span.Event)return object;var message=new $root.opentelemetry.proto.trace.v1.Span.Event;if(object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.name!=null&&(message.name=String(object.name)),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.trace.v1.Span.Event.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.Event.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),message},Event.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;object.name=``,object.droppedAttributesCount=0}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),object},Event.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Event.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Span.Event`},Event})(),Span.Link=(function(){function Link(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Link.prototype.traceId=null,Link.prototype.spanId=null,Link.prototype.traceState=null,Link.prototype.attributes=$util.emptyArray,Link.prototype.droppedAttributesCount=null,Link.prototype.flags=null,Link.create=function(properties){return new Link(properties)},Link.encode=function(message,writer){if(writer||=$Writer.create(),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(10).bytes(message.traceId),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(18).bytes(message.spanId),message.traceState!=null&&Object.hasOwnProperty.call(message,`traceState`)&&writer.uint32(26).string(message.traceState),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(34).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(40).uint32(message.droppedAttributesCount),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(53).fixed32(message.flags),writer},Link.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Link.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Span.Link;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.traceId=reader.bytes();break;case 2:message.spanId=reader.bytes();break;case 3:message.traceState=reader.string();break;case 4:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 5:message.droppedAttributesCount=reader.uint32();break;case 6:message.flags=reader.fixed32();break;default:reader.skipType(tag&7);break}}return message},Link.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Link.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId)))return`traceId: buffer expected`;if(message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId)))return`spanId: buffer expected`;if(message.traceState!=null&&message.hasOwnProperty(`traceState`)&&!$util.isString(message.traceState))return`traceState: string expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:null},Link.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Span.Link)return object;var message=new $root.opentelemetry.proto.trace.v1.Span.Link;if(object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.traceState!=null&&(message.traceState=String(object.traceState)),object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.trace.v1.Span.Link.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.trace.v1.Span.Link.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.flags!=null&&(message.flags=object.flags>>>0),message},Link.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults&&(options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId))),options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),object.traceState=``,object.droppedAttributesCount=0,object.flags=0),message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.traceState!=null&&message.hasOwnProperty(`traceState`)&&(object.traceState=message.traceState),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},Link.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Link.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Span.Link`},Link})(),Span})(),v1.Status=(function(){function Status(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Status.prototype.message=null,Status.prototype.code=null,Status.create=function(properties){return new Status(properties)},Status.encode=function(message,writer){return writer||=$Writer.create(),message.message!=null&&Object.hasOwnProperty.call(message,`message`)&&writer.uint32(18).string(message.message),message.code!=null&&Object.hasOwnProperty.call(message,`code`)&&writer.uint32(24).int32(message.code),writer},Status.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Status.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.trace.v1.Status;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 2:message.message=reader.string();break;case 3:message.code=reader.int32();break;default:reader.skipType(tag&7);break}}return message},Status.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Status.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.message!=null&&message.hasOwnProperty(`message`)&&!$util.isString(message.message))return`message: string expected`;if(message.code!=null&&message.hasOwnProperty(`code`))switch(message.code){default:return`code: enum value expected`;case 0:case 1:case 2:break}return null},Status.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.trace.v1.Status)return object;var message=new $root.opentelemetry.proto.trace.v1.Status;switch(object.message!=null&&(message.message=String(object.message)),object.code){default:if(typeof object.code==`number`){message.code=object.code;break}break;case`STATUS_CODE_UNSET`:case 0:message.code=0;break;case`STATUS_CODE_OK`:case 1:message.code=1;break;case`STATUS_CODE_ERROR`:case 2:message.code=2;break}return message},Status.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.message=``,object.code=options.enums===String?`STATUS_CODE_UNSET`:0),message.message!=null&&message.hasOwnProperty(`message`)&&(object.message=message.message),message.code!=null&&message.hasOwnProperty(`code`)&&(object.code=options.enums===String?$root.opentelemetry.proto.trace.v1.Status.StatusCode[message.code]===void 0?message.code:$root.opentelemetry.proto.trace.v1.Status.StatusCode[message.code]:message.code),object},Status.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Status.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.trace.v1.Status`},Status.StatusCode=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`STATUS_CODE_UNSET`]=0,values[valuesById[1]=`STATUS_CODE_OK`]=1,values[valuesById[2]=`STATUS_CODE_ERROR`]=2,values})(),Status})(),v1.SpanFlags=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`SPAN_FLAGS_DO_NOT_USE`]=0,values[valuesById[255]=`SPAN_FLAGS_TRACE_FLAGS_MASK`]=255,values[valuesById[256]=`SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK`]=256,values[valuesById[512]=`SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK`]=512,values})(),v1})(),trace$1})(),proto.collector=(function(){var collector={};return collector.trace=(function(){var trace$1={};return trace$1.v1=(function(){var v1={};return v1.TraceService=(function(){function TraceService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}return(TraceService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=TraceService,TraceService.create=function(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)},Object.defineProperty(TraceService.prototype.export=function export_(request,callback){return this.rpcCall(export_,$root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,$root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,request,callback)},`name`,{value:`Export`}),TraceService})(),v1.ExportTraceServiceRequest=(function(){function ExportTraceServiceRequest(properties){if(this.resourceSpans=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportTraceServiceRequest.prototype.resourceSpans=$util.emptyArray,ExportTraceServiceRequest.create=function(properties){return new ExportTraceServiceRequest(properties)},ExportTraceServiceRequest.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceSpans!=null&&message.resourceSpans.length)for(var i=0;i<message.resourceSpans.length;++i)$root.opentelemetry.proto.trace.v1.ResourceSpans.encode(message.resourceSpans[i],writer.uint32(10).fork()).ldelim();return writer},ExportTraceServiceRequest.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportTraceServiceRequest.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceSpans&&message.resourceSpans.length||(message.resourceSpans=[]),message.resourceSpans.push($root.opentelemetry.proto.trace.v1.ResourceSpans.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ExportTraceServiceRequest.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportTraceServiceRequest.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceSpans!=null&&message.hasOwnProperty(`resourceSpans`)){if(!Array.isArray(message.resourceSpans))return`resourceSpans: array expected`;for(var i=0;i<message.resourceSpans.length;++i){var error=$root.opentelemetry.proto.trace.v1.ResourceSpans.verify(message.resourceSpans[i]);if(error)return`resourceSpans.`+error}}return null},ExportTraceServiceRequest.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest)return object;var message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;if(object.resourceSpans){if(!Array.isArray(object.resourceSpans))throw TypeError(`.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest.resourceSpans: array expected`);message.resourceSpans=[];for(var i=0;i<object.resourceSpans.length;++i){if(typeof object.resourceSpans[i]!=`object`)throw TypeError(`.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest.resourceSpans: object expected`);message.resourceSpans[i]=$root.opentelemetry.proto.trace.v1.ResourceSpans.fromObject(object.resourceSpans[i])}}return message},ExportTraceServiceRequest.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceSpans=[]),message.resourceSpans&&message.resourceSpans.length){object.resourceSpans=[];for(var j=0;j<message.resourceSpans.length;++j)object.resourceSpans[j]=$root.opentelemetry.proto.trace.v1.ResourceSpans.toObject(message.resourceSpans[j],options)}return object},ExportTraceServiceRequest.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportTraceServiceRequest.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest`},ExportTraceServiceRequest})(),v1.ExportTraceServiceResponse=(function(){function ExportTraceServiceResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportTraceServiceResponse.prototype.partialSuccess=null,ExportTraceServiceResponse.create=function(properties){return new ExportTraceServiceResponse(properties)},ExportTraceServiceResponse.encode=function(message,writer){return writer||=$Writer.create(),message.partialSuccess!=null&&Object.hasOwnProperty.call(message,`partialSuccess`)&&$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.encode(message.partialSuccess,writer.uint32(10).fork()).ldelim(),writer},ExportTraceServiceResponse.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportTraceServiceResponse.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.partialSuccess=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},ExportTraceServiceResponse.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportTraceServiceResponse.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)){var error=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.verify(message.partialSuccess);if(error)return`partialSuccess.`+error}return null},ExportTraceServiceResponse.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse)return object;var message=new $root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;if(object.partialSuccess!=null){if(typeof object.partialSuccess!=`object`)throw TypeError(`.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse.partialSuccess: object expected`);message.partialSuccess=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.fromObject(object.partialSuccess)}return message},ExportTraceServiceResponse.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.partialSuccess=null),message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)&&(object.partialSuccess=$root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.toObject(message.partialSuccess,options)),object},ExportTraceServiceResponse.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportTraceServiceResponse.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse`},ExportTraceServiceResponse})(),v1.ExportTracePartialSuccess=(function(){function ExportTracePartialSuccess(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportTracePartialSuccess.prototype.rejectedSpans=null,ExportTracePartialSuccess.prototype.errorMessage=null,ExportTracePartialSuccess.create=function(properties){return new ExportTracePartialSuccess(properties)},ExportTracePartialSuccess.encode=function(message,writer){return writer||=$Writer.create(),message.rejectedSpans!=null&&Object.hasOwnProperty.call(message,`rejectedSpans`)&&writer.uint32(8).int64(message.rejectedSpans),message.errorMessage!=null&&Object.hasOwnProperty.call(message,`errorMessage`)&&writer.uint32(18).string(message.errorMessage),writer},ExportTracePartialSuccess.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportTracePartialSuccess.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.rejectedSpans=reader.int64();break;case 2:message.errorMessage=reader.string();break;default:reader.skipType(tag&7);break}}return message},ExportTracePartialSuccess.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportTracePartialSuccess.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.rejectedSpans!=null&&message.hasOwnProperty(`rejectedSpans`)&&!$util.isInteger(message.rejectedSpans)&&!(message.rejectedSpans&&$util.isInteger(message.rejectedSpans.low)&&$util.isInteger(message.rejectedSpans.high))?`rejectedSpans: integer|Long expected`:message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&!$util.isString(message.errorMessage)?`errorMessage: string expected`:null},ExportTracePartialSuccess.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess)return object;var message=new $root.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess;return object.rejectedSpans!=null&&($util.Long?(message.rejectedSpans=$util.Long.fromValue(object.rejectedSpans)).unsigned=!1:typeof object.rejectedSpans==`string`?message.rejectedSpans=parseInt(object.rejectedSpans,10):typeof object.rejectedSpans==`number`?message.rejectedSpans=object.rejectedSpans:typeof object.rejectedSpans==`object`&&(message.rejectedSpans=new $util.LongBits(object.rejectedSpans.low>>>0,object.rejectedSpans.high>>>0).toNumber())),object.errorMessage!=null&&(message.errorMessage=String(object.errorMessage)),message},ExportTracePartialSuccess.toObject=function(message,options){options||={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.rejectedSpans=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.rejectedSpans=options.longs===String?`0`:0;object.errorMessage=``}return message.rejectedSpans!=null&&message.hasOwnProperty(`rejectedSpans`)&&(typeof message.rejectedSpans==`number`?object.rejectedSpans=options.longs===String?String(message.rejectedSpans):message.rejectedSpans:object.rejectedSpans=options.longs===String?$util.Long.prototype.toString.call(message.rejectedSpans):options.longs===Number?new $util.LongBits(message.rejectedSpans.low>>>0,message.rejectedSpans.high>>>0).toNumber():message.rejectedSpans),message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&(object.errorMessage=message.errorMessage),object},ExportTracePartialSuccess.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportTracePartialSuccess.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess`},ExportTracePartialSuccess})(),v1})(),trace$1})(),collector.metrics=(function(){var metrics={};return metrics.v1=(function(){var v1={};return v1.MetricsService=(function(){function MetricsService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}return(MetricsService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=MetricsService,MetricsService.create=function(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)},Object.defineProperty(MetricsService.prototype.export=function export_(request,callback){return this.rpcCall(export_,$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest,$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse,request,callback)},`name`,{value:`Export`}),MetricsService})(),v1.ExportMetricsServiceRequest=(function(){function ExportMetricsServiceRequest(properties){if(this.resourceMetrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportMetricsServiceRequest.prototype.resourceMetrics=$util.emptyArray,ExportMetricsServiceRequest.create=function(properties){return new ExportMetricsServiceRequest(properties)},ExportMetricsServiceRequest.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceMetrics!=null&&message.resourceMetrics.length)for(var i=0;i<message.resourceMetrics.length;++i)$root.opentelemetry.proto.metrics.v1.ResourceMetrics.encode(message.resourceMetrics[i],writer.uint32(10).fork()).ldelim();return writer},ExportMetricsServiceRequest.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportMetricsServiceRequest.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceMetrics&&message.resourceMetrics.length||(message.resourceMetrics=[]),message.resourceMetrics.push($root.opentelemetry.proto.metrics.v1.ResourceMetrics.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ExportMetricsServiceRequest.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportMetricsServiceRequest.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceMetrics!=null&&message.hasOwnProperty(`resourceMetrics`)){if(!Array.isArray(message.resourceMetrics))return`resourceMetrics: array expected`;for(var i=0;i<message.resourceMetrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.verify(message.resourceMetrics[i]);if(error)return`resourceMetrics.`+error}}return null},ExportMetricsServiceRequest.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest)return object;var message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;if(object.resourceMetrics){if(!Array.isArray(object.resourceMetrics))throw TypeError(`.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest.resourceMetrics: array expected`);message.resourceMetrics=[];for(var i=0;i<object.resourceMetrics.length;++i){if(typeof object.resourceMetrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest.resourceMetrics: object expected`);message.resourceMetrics[i]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.fromObject(object.resourceMetrics[i])}}return message},ExportMetricsServiceRequest.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceMetrics=[]),message.resourceMetrics&&message.resourceMetrics.length){object.resourceMetrics=[];for(var j=0;j<message.resourceMetrics.length;++j)object.resourceMetrics[j]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.toObject(message.resourceMetrics[j],options)}return object},ExportMetricsServiceRequest.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportMetricsServiceRequest.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest`},ExportMetricsServiceRequest})(),v1.ExportMetricsServiceResponse=(function(){function ExportMetricsServiceResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportMetricsServiceResponse.prototype.partialSuccess=null,ExportMetricsServiceResponse.create=function(properties){return new ExportMetricsServiceResponse(properties)},ExportMetricsServiceResponse.encode=function(message,writer){return writer||=$Writer.create(),message.partialSuccess!=null&&Object.hasOwnProperty.call(message,`partialSuccess`)&&$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.encode(message.partialSuccess,writer.uint32(10).fork()).ldelim(),writer},ExportMetricsServiceResponse.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportMetricsServiceResponse.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.partialSuccess=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},ExportMetricsServiceResponse.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportMetricsServiceResponse.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)){var error=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.verify(message.partialSuccess);if(error)return`partialSuccess.`+error}return null},ExportMetricsServiceResponse.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse)return object;var message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse;if(object.partialSuccess!=null){if(typeof object.partialSuccess!=`object`)throw TypeError(`.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse.partialSuccess: object expected`);message.partialSuccess=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.fromObject(object.partialSuccess)}return message},ExportMetricsServiceResponse.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.partialSuccess=null),message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)&&(object.partialSuccess=$root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.toObject(message.partialSuccess,options)),object},ExportMetricsServiceResponse.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportMetricsServiceResponse.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse`},ExportMetricsServiceResponse})(),v1.ExportMetricsPartialSuccess=(function(){function ExportMetricsPartialSuccess(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportMetricsPartialSuccess.prototype.rejectedDataPoints=null,ExportMetricsPartialSuccess.prototype.errorMessage=null,ExportMetricsPartialSuccess.create=function(properties){return new ExportMetricsPartialSuccess(properties)},ExportMetricsPartialSuccess.encode=function(message,writer){return writer||=$Writer.create(),message.rejectedDataPoints!=null&&Object.hasOwnProperty.call(message,`rejectedDataPoints`)&&writer.uint32(8).int64(message.rejectedDataPoints),message.errorMessage!=null&&Object.hasOwnProperty.call(message,`errorMessage`)&&writer.uint32(18).string(message.errorMessage),writer},ExportMetricsPartialSuccess.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportMetricsPartialSuccess.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.rejectedDataPoints=reader.int64();break;case 2:message.errorMessage=reader.string();break;default:reader.skipType(tag&7);break}}return message},ExportMetricsPartialSuccess.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportMetricsPartialSuccess.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.rejectedDataPoints!=null&&message.hasOwnProperty(`rejectedDataPoints`)&&!$util.isInteger(message.rejectedDataPoints)&&!(message.rejectedDataPoints&&$util.isInteger(message.rejectedDataPoints.low)&&$util.isInteger(message.rejectedDataPoints.high))?`rejectedDataPoints: integer|Long expected`:message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&!$util.isString(message.errorMessage)?`errorMessage: string expected`:null},ExportMetricsPartialSuccess.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess)return object;var message=new $root.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess;return object.rejectedDataPoints!=null&&($util.Long?(message.rejectedDataPoints=$util.Long.fromValue(object.rejectedDataPoints)).unsigned=!1:typeof object.rejectedDataPoints==`string`?message.rejectedDataPoints=parseInt(object.rejectedDataPoints,10):typeof object.rejectedDataPoints==`number`?message.rejectedDataPoints=object.rejectedDataPoints:typeof object.rejectedDataPoints==`object`&&(message.rejectedDataPoints=new $util.LongBits(object.rejectedDataPoints.low>>>0,object.rejectedDataPoints.high>>>0).toNumber())),object.errorMessage!=null&&(message.errorMessage=String(object.errorMessage)),message},ExportMetricsPartialSuccess.toObject=function(message,options){options||={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.rejectedDataPoints=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.rejectedDataPoints=options.longs===String?`0`:0;object.errorMessage=``}return message.rejectedDataPoints!=null&&message.hasOwnProperty(`rejectedDataPoints`)&&(typeof message.rejectedDataPoints==`number`?object.rejectedDataPoints=options.longs===String?String(message.rejectedDataPoints):message.rejectedDataPoints:object.rejectedDataPoints=options.longs===String?$util.Long.prototype.toString.call(message.rejectedDataPoints):options.longs===Number?new $util.LongBits(message.rejectedDataPoints.low>>>0,message.rejectedDataPoints.high>>>0).toNumber():message.rejectedDataPoints),message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&(object.errorMessage=message.errorMessage),object},ExportMetricsPartialSuccess.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportMetricsPartialSuccess.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess`},ExportMetricsPartialSuccess})(),v1})(),metrics})(),collector.logs=(function(){var logs={};return logs.v1=(function(){var v1={};return v1.LogsService=(function(){function LogsService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}return(LogsService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=LogsService,LogsService.create=function(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)},Object.defineProperty(LogsService.prototype.export=function export_(request,callback){return this.rpcCall(export_,$root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest,$root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse,request,callback)},`name`,{value:`Export`}),LogsService})(),v1.ExportLogsServiceRequest=(function(){function ExportLogsServiceRequest(properties){if(this.resourceLogs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportLogsServiceRequest.prototype.resourceLogs=$util.emptyArray,ExportLogsServiceRequest.create=function(properties){return new ExportLogsServiceRequest(properties)},ExportLogsServiceRequest.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceLogs!=null&&message.resourceLogs.length)for(var i=0;i<message.resourceLogs.length;++i)$root.opentelemetry.proto.logs.v1.ResourceLogs.encode(message.resourceLogs[i],writer.uint32(10).fork()).ldelim();return writer},ExportLogsServiceRequest.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportLogsServiceRequest.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceLogs&&message.resourceLogs.length||(message.resourceLogs=[]),message.resourceLogs.push($root.opentelemetry.proto.logs.v1.ResourceLogs.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},ExportLogsServiceRequest.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportLogsServiceRequest.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceLogs!=null&&message.hasOwnProperty(`resourceLogs`)){if(!Array.isArray(message.resourceLogs))return`resourceLogs: array expected`;for(var i=0;i<message.resourceLogs.length;++i){var error=$root.opentelemetry.proto.logs.v1.ResourceLogs.verify(message.resourceLogs[i]);if(error)return`resourceLogs.`+error}}return null},ExportLogsServiceRequest.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest)return object;var message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;if(object.resourceLogs){if(!Array.isArray(object.resourceLogs))throw TypeError(`.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest.resourceLogs: array expected`);message.resourceLogs=[];for(var i=0;i<object.resourceLogs.length;++i){if(typeof object.resourceLogs[i]!=`object`)throw TypeError(`.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest.resourceLogs: object expected`);message.resourceLogs[i]=$root.opentelemetry.proto.logs.v1.ResourceLogs.fromObject(object.resourceLogs[i])}}return message},ExportLogsServiceRequest.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceLogs=[]),message.resourceLogs&&message.resourceLogs.length){object.resourceLogs=[];for(var j=0;j<message.resourceLogs.length;++j)object.resourceLogs[j]=$root.opentelemetry.proto.logs.v1.ResourceLogs.toObject(message.resourceLogs[j],options)}return object},ExportLogsServiceRequest.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportLogsServiceRequest.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest`},ExportLogsServiceRequest})(),v1.ExportLogsServiceResponse=(function(){function ExportLogsServiceResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportLogsServiceResponse.prototype.partialSuccess=null,ExportLogsServiceResponse.create=function(properties){return new ExportLogsServiceResponse(properties)},ExportLogsServiceResponse.encode=function(message,writer){return writer||=$Writer.create(),message.partialSuccess!=null&&Object.hasOwnProperty.call(message,`partialSuccess`)&&$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.encode(message.partialSuccess,writer.uint32(10).fork()).ldelim(),writer},ExportLogsServiceResponse.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportLogsServiceResponse.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.partialSuccess=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.decode(reader,reader.uint32());break;default:reader.skipType(tag&7);break}}return message},ExportLogsServiceResponse.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportLogsServiceResponse.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)){var error=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.verify(message.partialSuccess);if(error)return`partialSuccess.`+error}return null},ExportLogsServiceResponse.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse)return object;var message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse;if(object.partialSuccess!=null){if(typeof object.partialSuccess!=`object`)throw TypeError(`.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse.partialSuccess: object expected`);message.partialSuccess=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.fromObject(object.partialSuccess)}return message},ExportLogsServiceResponse.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.partialSuccess=null),message.partialSuccess!=null&&message.hasOwnProperty(`partialSuccess`)&&(object.partialSuccess=$root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.toObject(message.partialSuccess,options)),object},ExportLogsServiceResponse.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportLogsServiceResponse.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse`},ExportLogsServiceResponse})(),v1.ExportLogsPartialSuccess=(function(){function ExportLogsPartialSuccess(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExportLogsPartialSuccess.prototype.rejectedLogRecords=null,ExportLogsPartialSuccess.prototype.errorMessage=null,ExportLogsPartialSuccess.create=function(properties){return new ExportLogsPartialSuccess(properties)},ExportLogsPartialSuccess.encode=function(message,writer){return writer||=$Writer.create(),message.rejectedLogRecords!=null&&Object.hasOwnProperty.call(message,`rejectedLogRecords`)&&writer.uint32(8).int64(message.rejectedLogRecords),message.errorMessage!=null&&Object.hasOwnProperty.call(message,`errorMessage`)&&writer.uint32(18).string(message.errorMessage),writer},ExportLogsPartialSuccess.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExportLogsPartialSuccess.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.rejectedLogRecords=reader.int64();break;case 2:message.errorMessage=reader.string();break;default:reader.skipType(tag&7);break}}return message},ExportLogsPartialSuccess.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExportLogsPartialSuccess.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.rejectedLogRecords!=null&&message.hasOwnProperty(`rejectedLogRecords`)&&!$util.isInteger(message.rejectedLogRecords)&&!(message.rejectedLogRecords&&$util.isInteger(message.rejectedLogRecords.low)&&$util.isInteger(message.rejectedLogRecords.high))?`rejectedLogRecords: integer|Long expected`:message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&!$util.isString(message.errorMessage)?`errorMessage: string expected`:null},ExportLogsPartialSuccess.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess)return object;var message=new $root.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess;return object.rejectedLogRecords!=null&&($util.Long?(message.rejectedLogRecords=$util.Long.fromValue(object.rejectedLogRecords)).unsigned=!1:typeof object.rejectedLogRecords==`string`?message.rejectedLogRecords=parseInt(object.rejectedLogRecords,10):typeof object.rejectedLogRecords==`number`?message.rejectedLogRecords=object.rejectedLogRecords:typeof object.rejectedLogRecords==`object`&&(message.rejectedLogRecords=new $util.LongBits(object.rejectedLogRecords.low>>>0,object.rejectedLogRecords.high>>>0).toNumber())),object.errorMessage!=null&&(message.errorMessage=String(object.errorMessage)),message},ExportLogsPartialSuccess.toObject=function(message,options){options||={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.rejectedLogRecords=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.rejectedLogRecords=options.longs===String?`0`:0;object.errorMessage=``}return message.rejectedLogRecords!=null&&message.hasOwnProperty(`rejectedLogRecords`)&&(typeof message.rejectedLogRecords==`number`?object.rejectedLogRecords=options.longs===String?String(message.rejectedLogRecords):message.rejectedLogRecords:object.rejectedLogRecords=options.longs===String?$util.Long.prototype.toString.call(message.rejectedLogRecords):options.longs===Number?new $util.LongBits(message.rejectedLogRecords.low>>>0,message.rejectedLogRecords.high>>>0).toNumber():message.rejectedLogRecords),message.errorMessage!=null&&message.hasOwnProperty(`errorMessage`)&&(object.errorMessage=message.errorMessage),object},ExportLogsPartialSuccess.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExportLogsPartialSuccess.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess`},ExportLogsPartialSuccess})(),v1})(),logs})(),collector})(),proto.metrics=(function(){var metrics={};return metrics.v1=(function(){var v1={};return v1.MetricsData=(function(){function MetricsData(properties){if(this.resourceMetrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return MetricsData.prototype.resourceMetrics=$util.emptyArray,MetricsData.create=function(properties){return new MetricsData(properties)},MetricsData.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceMetrics!=null&&message.resourceMetrics.length)for(var i=0;i<message.resourceMetrics.length;++i)$root.opentelemetry.proto.metrics.v1.ResourceMetrics.encode(message.resourceMetrics[i],writer.uint32(10).fork()).ldelim();return writer},MetricsData.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},MetricsData.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.MetricsData;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceMetrics&&message.resourceMetrics.length||(message.resourceMetrics=[]),message.resourceMetrics.push($root.opentelemetry.proto.metrics.v1.ResourceMetrics.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},MetricsData.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},MetricsData.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceMetrics!=null&&message.hasOwnProperty(`resourceMetrics`)){if(!Array.isArray(message.resourceMetrics))return`resourceMetrics: array expected`;for(var i=0;i<message.resourceMetrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.verify(message.resourceMetrics[i]);if(error)return`resourceMetrics.`+error}}return null},MetricsData.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.MetricsData)return object;var message=new $root.opentelemetry.proto.metrics.v1.MetricsData;if(object.resourceMetrics){if(!Array.isArray(object.resourceMetrics))throw TypeError(`.opentelemetry.proto.metrics.v1.MetricsData.resourceMetrics: array expected`);message.resourceMetrics=[];for(var i=0;i<object.resourceMetrics.length;++i){if(typeof object.resourceMetrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.MetricsData.resourceMetrics: object expected`);message.resourceMetrics[i]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.fromObject(object.resourceMetrics[i])}}return message},MetricsData.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceMetrics=[]),message.resourceMetrics&&message.resourceMetrics.length){object.resourceMetrics=[];for(var j=0;j<message.resourceMetrics.length;++j)object.resourceMetrics[j]=$root.opentelemetry.proto.metrics.v1.ResourceMetrics.toObject(message.resourceMetrics[j],options)}return object},MetricsData.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},MetricsData.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.MetricsData`},MetricsData})(),v1.ResourceMetrics=(function(){function ResourceMetrics(properties){if(this.scopeMetrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ResourceMetrics.prototype.resource=null,ResourceMetrics.prototype.scopeMetrics=$util.emptyArray,ResourceMetrics.prototype.schemaUrl=null,ResourceMetrics.create=function(properties){return new ResourceMetrics(properties)},ResourceMetrics.encode=function(message,writer){if(writer||=$Writer.create(),message.resource!=null&&Object.hasOwnProperty.call(message,`resource`)&&$root.opentelemetry.proto.resource.v1.Resource.encode(message.resource,writer.uint32(10).fork()).ldelim(),message.scopeMetrics!=null&&message.scopeMetrics.length)for(var i=0;i<message.scopeMetrics.length;++i)$root.opentelemetry.proto.metrics.v1.ScopeMetrics.encode(message.scopeMetrics[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ResourceMetrics.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ResourceMetrics.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ResourceMetrics;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resource=$root.opentelemetry.proto.resource.v1.Resource.decode(reader,reader.uint32());break;case 2:message.scopeMetrics&&message.scopeMetrics.length||(message.scopeMetrics=[]),message.scopeMetrics.push($root.opentelemetry.proto.metrics.v1.ScopeMetrics.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ResourceMetrics.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ResourceMetrics.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resource!=null&&message.hasOwnProperty(`resource`)){var error=$root.opentelemetry.proto.resource.v1.Resource.verify(message.resource);if(error)return`resource.`+error}if(message.scopeMetrics!=null&&message.hasOwnProperty(`scopeMetrics`)){if(!Array.isArray(message.scopeMetrics))return`scopeMetrics: array expected`;for(var i=0;i<message.scopeMetrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ScopeMetrics.verify(message.scopeMetrics[i]);if(error)return`scopeMetrics.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ResourceMetrics.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ResourceMetrics)return object;var message=new $root.opentelemetry.proto.metrics.v1.ResourceMetrics;if(object.resource!=null){if(typeof object.resource!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ResourceMetrics.resource: object expected`);message.resource=$root.opentelemetry.proto.resource.v1.Resource.fromObject(object.resource)}if(object.scopeMetrics){if(!Array.isArray(object.scopeMetrics))throw TypeError(`.opentelemetry.proto.metrics.v1.ResourceMetrics.scopeMetrics: array expected`);message.scopeMetrics=[];for(var i=0;i<object.scopeMetrics.length;++i){if(typeof object.scopeMetrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ResourceMetrics.scopeMetrics: object expected`);message.scopeMetrics[i]=$root.opentelemetry.proto.metrics.v1.ScopeMetrics.fromObject(object.scopeMetrics[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ResourceMetrics.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.scopeMetrics=[]),options.defaults&&(object.resource=null,object.schemaUrl=``),message.resource!=null&&message.hasOwnProperty(`resource`)&&(object.resource=$root.opentelemetry.proto.resource.v1.Resource.toObject(message.resource,options)),message.scopeMetrics&&message.scopeMetrics.length){object.scopeMetrics=[];for(var j=0;j<message.scopeMetrics.length;++j)object.scopeMetrics[j]=$root.opentelemetry.proto.metrics.v1.ScopeMetrics.toObject(message.scopeMetrics[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ResourceMetrics.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ResourceMetrics.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ResourceMetrics`},ResourceMetrics})(),v1.ScopeMetrics=(function(){function ScopeMetrics(properties){if(this.metrics=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ScopeMetrics.prototype.scope=null,ScopeMetrics.prototype.metrics=$util.emptyArray,ScopeMetrics.prototype.schemaUrl=null,ScopeMetrics.create=function(properties){return new ScopeMetrics(properties)},ScopeMetrics.encode=function(message,writer){if(writer||=$Writer.create(),message.scope!=null&&Object.hasOwnProperty.call(message,`scope`)&&$root.opentelemetry.proto.common.v1.InstrumentationScope.encode(message.scope,writer.uint32(10).fork()).ldelim(),message.metrics!=null&&message.metrics.length)for(var i=0;i<message.metrics.length;++i)$root.opentelemetry.proto.metrics.v1.Metric.encode(message.metrics[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ScopeMetrics.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ScopeMetrics.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ScopeMetrics;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.decode(reader,reader.uint32());break;case 2:message.metrics&&message.metrics.length||(message.metrics=[]),message.metrics.push($root.opentelemetry.proto.metrics.v1.Metric.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ScopeMetrics.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ScopeMetrics.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.scope!=null&&message.hasOwnProperty(`scope`)){var error=$root.opentelemetry.proto.common.v1.InstrumentationScope.verify(message.scope);if(error)return`scope.`+error}if(message.metrics!=null&&message.hasOwnProperty(`metrics`)){if(!Array.isArray(message.metrics))return`metrics: array expected`;for(var i=0;i<message.metrics.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Metric.verify(message.metrics[i]);if(error)return`metrics.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ScopeMetrics.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ScopeMetrics)return object;var message=new $root.opentelemetry.proto.metrics.v1.ScopeMetrics;if(object.scope!=null){if(typeof object.scope!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ScopeMetrics.scope: object expected`);message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.fromObject(object.scope)}if(object.metrics){if(!Array.isArray(object.metrics))throw TypeError(`.opentelemetry.proto.metrics.v1.ScopeMetrics.metrics: array expected`);message.metrics=[];for(var i=0;i<object.metrics.length;++i){if(typeof object.metrics[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ScopeMetrics.metrics: object expected`);message.metrics[i]=$root.opentelemetry.proto.metrics.v1.Metric.fromObject(object.metrics[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ScopeMetrics.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.metrics=[]),options.defaults&&(object.scope=null,object.schemaUrl=``),message.scope!=null&&message.hasOwnProperty(`scope`)&&(object.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.toObject(message.scope,options)),message.metrics&&message.metrics.length){object.metrics=[];for(var j=0;j<message.metrics.length;++j)object.metrics[j]=$root.opentelemetry.proto.metrics.v1.Metric.toObject(message.metrics[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ScopeMetrics.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ScopeMetrics.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ScopeMetrics`},ScopeMetrics})(),v1.Metric=(function(){function Metric(properties){if(this.metadata=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}Metric.prototype.name=null,Metric.prototype.description=null,Metric.prototype.unit=null,Metric.prototype.gauge=null,Metric.prototype.sum=null,Metric.prototype.histogram=null,Metric.prototype.exponentialHistogram=null,Metric.prototype.summary=null,Metric.prototype.metadata=$util.emptyArray;var $oneOfFields;return Object.defineProperty(Metric.prototype,`data`,{get:$util.oneOfGetter($oneOfFields=[`gauge`,`sum`,`histogram`,`exponentialHistogram`,`summary`]),set:$util.oneOfSetter($oneOfFields)}),Metric.create=function(properties){return new Metric(properties)},Metric.encode=function(message,writer){if(writer||=$Writer.create(),message.name!=null&&Object.hasOwnProperty.call(message,`name`)&&writer.uint32(10).string(message.name),message.description!=null&&Object.hasOwnProperty.call(message,`description`)&&writer.uint32(18).string(message.description),message.unit!=null&&Object.hasOwnProperty.call(message,`unit`)&&writer.uint32(26).string(message.unit),message.gauge!=null&&Object.hasOwnProperty.call(message,`gauge`)&&$root.opentelemetry.proto.metrics.v1.Gauge.encode(message.gauge,writer.uint32(42).fork()).ldelim(),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&$root.opentelemetry.proto.metrics.v1.Sum.encode(message.sum,writer.uint32(58).fork()).ldelim(),message.histogram!=null&&Object.hasOwnProperty.call(message,`histogram`)&&$root.opentelemetry.proto.metrics.v1.Histogram.encode(message.histogram,writer.uint32(74).fork()).ldelim(),message.exponentialHistogram!=null&&Object.hasOwnProperty.call(message,`exponentialHistogram`)&&$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.encode(message.exponentialHistogram,writer.uint32(82).fork()).ldelim(),message.summary!=null&&Object.hasOwnProperty.call(message,`summary`)&&$root.opentelemetry.proto.metrics.v1.Summary.encode(message.summary,writer.uint32(90).fork()).ldelim(),message.metadata!=null&&message.metadata.length)for(var i=0;i<message.metadata.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.metadata[i],writer.uint32(98).fork()).ldelim();return writer},Metric.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Metric.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Metric;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.name=reader.string();break;case 2:message.description=reader.string();break;case 3:message.unit=reader.string();break;case 5:message.gauge=$root.opentelemetry.proto.metrics.v1.Gauge.decode(reader,reader.uint32());break;case 7:message.sum=$root.opentelemetry.proto.metrics.v1.Sum.decode(reader,reader.uint32());break;case 9:message.histogram=$root.opentelemetry.proto.metrics.v1.Histogram.decode(reader,reader.uint32());break;case 10:message.exponentialHistogram=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.decode(reader,reader.uint32());break;case 11:message.summary=$root.opentelemetry.proto.metrics.v1.Summary.decode(reader,reader.uint32());break;case 12:message.metadata&&message.metadata.length||(message.metadata=[]),message.metadata.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Metric.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Metric.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.name!=null&&message.hasOwnProperty(`name`)&&!$util.isString(message.name))return`name: string expected`;if(message.description!=null&&message.hasOwnProperty(`description`)&&!$util.isString(message.description))return`description: string expected`;if(message.unit!=null&&message.hasOwnProperty(`unit`)&&!$util.isString(message.unit))return`unit: string expected`;if(message.gauge!=null&&message.hasOwnProperty(`gauge`)){properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Gauge.verify(message.gauge);if(error)return`gauge.`+error}if(message.sum!=null&&message.hasOwnProperty(`sum`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Sum.verify(message.sum);if(error)return`sum.`+error}if(message.histogram!=null&&message.hasOwnProperty(`histogram`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Histogram.verify(message.histogram);if(error)return`histogram.`+error}if(message.exponentialHistogram!=null&&message.hasOwnProperty(`exponentialHistogram`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.verify(message.exponentialHistogram);if(error)return`exponentialHistogram.`+error}if(message.summary!=null&&message.hasOwnProperty(`summary`)){if(properties.data===1)return`data: multiple values`;properties.data=1;var error=$root.opentelemetry.proto.metrics.v1.Summary.verify(message.summary);if(error)return`summary.`+error}if(message.metadata!=null&&message.hasOwnProperty(`metadata`)){if(!Array.isArray(message.metadata))return`metadata: array expected`;for(var i=0;i<message.metadata.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.metadata[i]);if(error)return`metadata.`+error}}return null},Metric.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Metric)return object;var message=new $root.opentelemetry.proto.metrics.v1.Metric;if(object.name!=null&&(message.name=String(object.name)),object.description!=null&&(message.description=String(object.description)),object.unit!=null&&(message.unit=String(object.unit)),object.gauge!=null){if(typeof object.gauge!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.gauge: object expected`);message.gauge=$root.opentelemetry.proto.metrics.v1.Gauge.fromObject(object.gauge)}if(object.sum!=null){if(typeof object.sum!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.sum: object expected`);message.sum=$root.opentelemetry.proto.metrics.v1.Sum.fromObject(object.sum)}if(object.histogram!=null){if(typeof object.histogram!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.histogram: object expected`);message.histogram=$root.opentelemetry.proto.metrics.v1.Histogram.fromObject(object.histogram)}if(object.exponentialHistogram!=null){if(typeof object.exponentialHistogram!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.exponentialHistogram: object expected`);message.exponentialHistogram=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.fromObject(object.exponentialHistogram)}if(object.summary!=null){if(typeof object.summary!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.summary: object expected`);message.summary=$root.opentelemetry.proto.metrics.v1.Summary.fromObject(object.summary)}if(object.metadata){if(!Array.isArray(object.metadata))throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.metadata: array expected`);message.metadata=[];for(var i=0;i<object.metadata.length;++i){if(typeof object.metadata[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Metric.metadata: object expected`);message.metadata[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.metadata[i])}}return message},Metric.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.metadata=[]),options.defaults&&(object.name=``,object.description=``,object.unit=``),message.name!=null&&message.hasOwnProperty(`name`)&&(object.name=message.name),message.description!=null&&message.hasOwnProperty(`description`)&&(object.description=message.description),message.unit!=null&&message.hasOwnProperty(`unit`)&&(object.unit=message.unit),message.gauge!=null&&message.hasOwnProperty(`gauge`)&&(object.gauge=$root.opentelemetry.proto.metrics.v1.Gauge.toObject(message.gauge,options),options.oneofs&&(object.data=`gauge`)),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=$root.opentelemetry.proto.metrics.v1.Sum.toObject(message.sum,options),options.oneofs&&(object.data=`sum`)),message.histogram!=null&&message.hasOwnProperty(`histogram`)&&(object.histogram=$root.opentelemetry.proto.metrics.v1.Histogram.toObject(message.histogram,options),options.oneofs&&(object.data=`histogram`)),message.exponentialHistogram!=null&&message.hasOwnProperty(`exponentialHistogram`)&&(object.exponentialHistogram=$root.opentelemetry.proto.metrics.v1.ExponentialHistogram.toObject(message.exponentialHistogram,options),options.oneofs&&(object.data=`exponentialHistogram`)),message.summary!=null&&message.hasOwnProperty(`summary`)&&(object.summary=$root.opentelemetry.proto.metrics.v1.Summary.toObject(message.summary,options),options.oneofs&&(object.data=`summary`)),message.metadata&&message.metadata.length){object.metadata=[];for(var j=0;j<message.metadata.length;++j)object.metadata[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.metadata[j],options)}return object},Metric.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Metric.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Metric`},Metric})(),v1.Gauge=(function(){function Gauge(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Gauge.prototype.dataPoints=$util.emptyArray,Gauge.create=function(properties){return new Gauge(properties)},Gauge.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.NumberDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return writer},Gauge.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Gauge.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Gauge;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.NumberDataPoint.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Gauge.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Gauge.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}return null},Gauge.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Gauge)return object;var message=new $root.opentelemetry.proto.metrics.v1.Gauge;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Gauge.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Gauge.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.fromObject(object.dataPoints[i])}}return message},Gauge.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.toObject(message.dataPoints[j],options)}return object},Gauge.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Gauge.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Gauge`},Gauge})(),v1.Sum=(function(){function Sum(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Sum.prototype.dataPoints=$util.emptyArray,Sum.prototype.aggregationTemporality=null,Sum.prototype.isMonotonic=null,Sum.create=function(properties){return new Sum(properties)},Sum.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.NumberDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return message.aggregationTemporality!=null&&Object.hasOwnProperty.call(message,`aggregationTemporality`)&&writer.uint32(16).int32(message.aggregationTemporality),message.isMonotonic!=null&&Object.hasOwnProperty.call(message,`isMonotonic`)&&writer.uint32(24).bool(message.isMonotonic),writer},Sum.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Sum.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Sum;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.NumberDataPoint.decode(reader,reader.uint32()));break;case 2:message.aggregationTemporality=reader.int32();break;case 3:message.isMonotonic=reader.bool();break;default:reader.skipType(tag&7);break}}return message},Sum.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Sum.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}if(message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`))switch(message.aggregationTemporality){default:return`aggregationTemporality: enum value expected`;case 0:case 1:case 2:break}return message.isMonotonic!=null&&message.hasOwnProperty(`isMonotonic`)&&typeof message.isMonotonic!=`boolean`?`isMonotonic: boolean expected`:null},Sum.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Sum)return object;var message=new $root.opentelemetry.proto.metrics.v1.Sum;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Sum.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Sum.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.fromObject(object.dataPoints[i])}}switch(object.aggregationTemporality){default:if(typeof object.aggregationTemporality==`number`){message.aggregationTemporality=object.aggregationTemporality;break}break;case`AGGREGATION_TEMPORALITY_UNSPECIFIED`:case 0:message.aggregationTemporality=0;break;case`AGGREGATION_TEMPORALITY_DELTA`:case 1:message.aggregationTemporality=1;break;case`AGGREGATION_TEMPORALITY_CUMULATIVE`:case 2:message.aggregationTemporality=2;break}return object.isMonotonic!=null&&(message.isMonotonic=!!object.isMonotonic),message},Sum.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),options.defaults&&(object.aggregationTemporality=options.enums===String?`AGGREGATION_TEMPORALITY_UNSPECIFIED`:0,object.isMonotonic=!1),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.NumberDataPoint.toObject(message.dataPoints[j],options)}return message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`)&&(object.aggregationTemporality=options.enums===String?$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]===void 0?message.aggregationTemporality:$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]:message.aggregationTemporality),message.isMonotonic!=null&&message.hasOwnProperty(`isMonotonic`)&&(object.isMonotonic=message.isMonotonic),object},Sum.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Sum.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Sum`},Sum})(),v1.Histogram=(function(){function Histogram(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Histogram.prototype.dataPoints=$util.emptyArray,Histogram.prototype.aggregationTemporality=null,Histogram.create=function(properties){return new Histogram(properties)},Histogram.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return message.aggregationTemporality!=null&&Object.hasOwnProperty.call(message,`aggregationTemporality`)&&writer.uint32(16).int32(message.aggregationTemporality),writer},Histogram.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Histogram.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Histogram;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.HistogramDataPoint.decode(reader,reader.uint32()));break;case 2:message.aggregationTemporality=reader.int32();break;default:reader.skipType(tag&7);break}}return message},Histogram.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Histogram.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}if(message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`))switch(message.aggregationTemporality){default:return`aggregationTemporality: enum value expected`;case 0:case 1:case 2:break}return null},Histogram.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Histogram)return object;var message=new $root.opentelemetry.proto.metrics.v1.Histogram;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Histogram.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Histogram.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.fromObject(object.dataPoints[i])}}switch(object.aggregationTemporality){default:if(typeof object.aggregationTemporality==`number`){message.aggregationTemporality=object.aggregationTemporality;break}break;case`AGGREGATION_TEMPORALITY_UNSPECIFIED`:case 0:message.aggregationTemporality=0;break;case`AGGREGATION_TEMPORALITY_DELTA`:case 1:message.aggregationTemporality=1;break;case`AGGREGATION_TEMPORALITY_CUMULATIVE`:case 2:message.aggregationTemporality=2;break}return message},Histogram.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),options.defaults&&(object.aggregationTemporality=options.enums===String?`AGGREGATION_TEMPORALITY_UNSPECIFIED`:0),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.HistogramDataPoint.toObject(message.dataPoints[j],options)}return message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`)&&(object.aggregationTemporality=options.enums===String?$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]===void 0?message.aggregationTemporality:$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]:message.aggregationTemporality),object},Histogram.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Histogram.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Histogram`},Histogram})(),v1.ExponentialHistogram=(function(){function ExponentialHistogram(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ExponentialHistogram.prototype.dataPoints=$util.emptyArray,ExponentialHistogram.prototype.aggregationTemporality=null,ExponentialHistogram.create=function(properties){return new ExponentialHistogram(properties)},ExponentialHistogram.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return message.aggregationTemporality!=null&&Object.hasOwnProperty.call(message,`aggregationTemporality`)&&writer.uint32(16).int32(message.aggregationTemporality),writer},ExponentialHistogram.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExponentialHistogram.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogram;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.decode(reader,reader.uint32()));break;case 2:message.aggregationTemporality=reader.int32();break;default:reader.skipType(tag&7);break}}return message},ExponentialHistogram.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExponentialHistogram.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}if(message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`))switch(message.aggregationTemporality){default:return`aggregationTemporality: enum value expected`;case 0:case 1:case 2:break}return null},ExponentialHistogram.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ExponentialHistogram)return object;var message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogram;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogram.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogram.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.fromObject(object.dataPoints[i])}}switch(object.aggregationTemporality){default:if(typeof object.aggregationTemporality==`number`){message.aggregationTemporality=object.aggregationTemporality;break}break;case`AGGREGATION_TEMPORALITY_UNSPECIFIED`:case 0:message.aggregationTemporality=0;break;case`AGGREGATION_TEMPORALITY_DELTA`:case 1:message.aggregationTemporality=1;break;case`AGGREGATION_TEMPORALITY_CUMULATIVE`:case 2:message.aggregationTemporality=2;break}return message},ExponentialHistogram.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),options.defaults&&(object.aggregationTemporality=options.enums===String?`AGGREGATION_TEMPORALITY_UNSPECIFIED`:0),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.toObject(message.dataPoints[j],options)}return message.aggregationTemporality!=null&&message.hasOwnProperty(`aggregationTemporality`)&&(object.aggregationTemporality=options.enums===String?$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]===void 0?message.aggregationTemporality:$root.opentelemetry.proto.metrics.v1.AggregationTemporality[message.aggregationTemporality]:message.aggregationTemporality),object},ExponentialHistogram.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExponentialHistogram.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ExponentialHistogram`},ExponentialHistogram})(),v1.Summary=(function(){function Summary(properties){if(this.dataPoints=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Summary.prototype.dataPoints=$util.emptyArray,Summary.create=function(properties){return new Summary(properties)},Summary.encode=function(message,writer){if(writer||=$Writer.create(),message.dataPoints!=null&&message.dataPoints.length)for(var i=0;i<message.dataPoints.length;++i)$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.encode(message.dataPoints[i],writer.uint32(10).fork()).ldelim();return writer},Summary.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Summary.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Summary;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.dataPoints&&message.dataPoints.length||(message.dataPoints=[]),message.dataPoints.push($root.opentelemetry.proto.metrics.v1.SummaryDataPoint.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},Summary.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Summary.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.dataPoints!=null&&message.hasOwnProperty(`dataPoints`)){if(!Array.isArray(message.dataPoints))return`dataPoints: array expected`;for(var i=0;i<message.dataPoints.length;++i){var error=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.verify(message.dataPoints[i]);if(error)return`dataPoints.`+error}}return null},Summary.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Summary)return object;var message=new $root.opentelemetry.proto.metrics.v1.Summary;if(object.dataPoints){if(!Array.isArray(object.dataPoints))throw TypeError(`.opentelemetry.proto.metrics.v1.Summary.dataPoints: array expected`);message.dataPoints=[];for(var i=0;i<object.dataPoints.length;++i){if(typeof object.dataPoints[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Summary.dataPoints: object expected`);message.dataPoints[i]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.fromObject(object.dataPoints[i])}}return message},Summary.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.dataPoints=[]),message.dataPoints&&message.dataPoints.length){object.dataPoints=[];for(var j=0;j<message.dataPoints.length;++j)object.dataPoints[j]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.toObject(message.dataPoints[j],options)}return object},Summary.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Summary.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Summary`},Summary})(),v1.AggregationTemporality=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`AGGREGATION_TEMPORALITY_UNSPECIFIED`]=0,values[valuesById[1]=`AGGREGATION_TEMPORALITY_DELTA`]=1,values[valuesById[2]=`AGGREGATION_TEMPORALITY_CUMULATIVE`]=2,values})(),v1.DataPointFlags=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`DATA_POINT_FLAGS_DO_NOT_USE`]=0,values[valuesById[1]=`DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK`]=1,values})(),v1.NumberDataPoint=(function(){function NumberDataPoint(properties){if(this.attributes=[],this.exemplars=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}NumberDataPoint.prototype.attributes=$util.emptyArray,NumberDataPoint.prototype.startTimeUnixNano=null,NumberDataPoint.prototype.timeUnixNano=null,NumberDataPoint.prototype.asDouble=null,NumberDataPoint.prototype.asInt=null,NumberDataPoint.prototype.exemplars=$util.emptyArray,NumberDataPoint.prototype.flags=null;var $oneOfFields;return Object.defineProperty(NumberDataPoint.prototype,`value`,{get:$util.oneOfGetter($oneOfFields=[`asDouble`,`asInt`]),set:$util.oneOfSetter($oneOfFields)}),NumberDataPoint.create=function(properties){return new NumberDataPoint(properties)},NumberDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.asDouble!=null&&Object.hasOwnProperty.call(message,`asDouble`)&&writer.uint32(33).double(message.asDouble),message.exemplars!=null&&message.exemplars.length)for(var i=0;i<message.exemplars.length;++i)$root.opentelemetry.proto.metrics.v1.Exemplar.encode(message.exemplars[i],writer.uint32(42).fork()).ldelim();if(message.asInt!=null&&Object.hasOwnProperty.call(message,`asInt`)&&writer.uint32(49).sfixed64(message.asInt),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(58).fork()).ldelim();return message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(64).uint32(message.flags),writer},NumberDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},NumberDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.NumberDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 7:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.asDouble=reader.double();break;case 6:message.asInt=reader.sfixed64();break;case 5:message.exemplars&&message.exemplars.length||(message.exemplars=[]),message.exemplars.push($root.opentelemetry.proto.metrics.v1.Exemplar.decode(reader,reader.uint32()));break;case 8:message.flags=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},NumberDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},NumberDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(properties.value=1,typeof message.asDouble!=`number`))return`asDouble: number expected`;if(message.asInt!=null&&message.hasOwnProperty(`asInt`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!$util.isInteger(message.asInt)&&!(message.asInt&&$util.isInteger(message.asInt.low)&&$util.isInteger(message.asInt.high)))return`asInt: integer|Long expected`}if(message.exemplars!=null&&message.hasOwnProperty(`exemplars`)){if(!Array.isArray(message.exemplars))return`exemplars: array expected`;for(var i=0;i<message.exemplars.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Exemplar.verify(message.exemplars[i]);if(error)return`exemplars.`+error}}return message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:null},NumberDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.NumberDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.NumberDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.asDouble!=null&&(message.asDouble=Number(object.asDouble)),object.asInt!=null&&($util.Long?(message.asInt=$util.Long.fromValue(object.asInt)).unsigned=!1:typeof object.asInt==`string`?message.asInt=parseInt(object.asInt,10):typeof object.asInt==`number`?message.asInt=object.asInt:typeof object.asInt==`object`&&(message.asInt=new $util.LongBits(object.asInt.low>>>0,object.asInt.high>>>0).toNumber())),object.exemplars){if(!Array.isArray(object.exemplars))throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.exemplars: array expected`);message.exemplars=[];for(var i=0;i<object.exemplars.length;++i){if(typeof object.exemplars[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.NumberDataPoint.exemplars: object expected`);message.exemplars[i]=$root.opentelemetry.proto.metrics.v1.Exemplar.fromObject(object.exemplars[i])}}return object.flags!=null&&(message.flags=object.flags>>>0),message},NumberDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.exemplars=[],object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;object.flags=0}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(object.asDouble=options.json&&!isFinite(message.asDouble)?String(message.asDouble):message.asDouble,options.oneofs&&(object.value=`asDouble`)),message.exemplars&&message.exemplars.length){object.exemplars=[];for(var j=0;j<message.exemplars.length;++j)object.exemplars[j]=$root.opentelemetry.proto.metrics.v1.Exemplar.toObject(message.exemplars[j],options)}if(message.asInt!=null&&message.hasOwnProperty(`asInt`)&&(typeof message.asInt==`number`?object.asInt=options.longs===String?String(message.asInt):message.asInt:object.asInt=options.longs===String?$util.Long.prototype.toString.call(message.asInt):options.longs===Number?new $util.LongBits(message.asInt.low>>>0,message.asInt.high>>>0).toNumber():message.asInt,options.oneofs&&(object.value=`asInt`)),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},NumberDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},NumberDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.NumberDataPoint`},NumberDataPoint})(),v1.HistogramDataPoint=(function(){function HistogramDataPoint(properties){if(this.attributes=[],this.bucketCounts=[],this.explicitBounds=[],this.exemplars=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}HistogramDataPoint.prototype.attributes=$util.emptyArray,HistogramDataPoint.prototype.startTimeUnixNano=null,HistogramDataPoint.prototype.timeUnixNano=null,HistogramDataPoint.prototype.count=null,HistogramDataPoint.prototype.sum=null,HistogramDataPoint.prototype.bucketCounts=$util.emptyArray,HistogramDataPoint.prototype.explicitBounds=$util.emptyArray,HistogramDataPoint.prototype.exemplars=$util.emptyArray,HistogramDataPoint.prototype.flags=null,HistogramDataPoint.prototype.min=null,HistogramDataPoint.prototype.max=null;var $oneOfFields;return Object.defineProperty(HistogramDataPoint.prototype,`_sum`,{get:$util.oneOfGetter($oneOfFields=[`sum`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(HistogramDataPoint.prototype,`_min`,{get:$util.oneOfGetter($oneOfFields=[`min`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(HistogramDataPoint.prototype,`_max`,{get:$util.oneOfGetter($oneOfFields=[`max`]),set:$util.oneOfSetter($oneOfFields)}),HistogramDataPoint.create=function(properties){return new HistogramDataPoint(properties)},HistogramDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.count!=null&&Object.hasOwnProperty.call(message,`count`)&&writer.uint32(33).fixed64(message.count),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&writer.uint32(41).double(message.sum),message.bucketCounts!=null&&message.bucketCounts.length){writer.uint32(50).fork();for(var i=0;i<message.bucketCounts.length;++i)writer.fixed64(message.bucketCounts[i]);writer.ldelim()}if(message.explicitBounds!=null&&message.explicitBounds.length){writer.uint32(58).fork();for(var i=0;i<message.explicitBounds.length;++i)writer.double(message.explicitBounds[i]);writer.ldelim()}if(message.exemplars!=null&&message.exemplars.length)for(var i=0;i<message.exemplars.length;++i)$root.opentelemetry.proto.metrics.v1.Exemplar.encode(message.exemplars[i],writer.uint32(66).fork()).ldelim();if(message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(74).fork()).ldelim();return message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(80).uint32(message.flags),message.min!=null&&Object.hasOwnProperty.call(message,`min`)&&writer.uint32(89).double(message.min),message.max!=null&&Object.hasOwnProperty.call(message,`max`)&&writer.uint32(97).double(message.max),writer},HistogramDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},HistogramDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.HistogramDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 9:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.count=reader.fixed64();break;case 5:message.sum=reader.double();break;case 6:if(message.bucketCounts&&message.bucketCounts.length||(message.bucketCounts=[]),(tag&7)==2)for(var end2=reader.uint32()+reader.pos;reader.pos<end2;)message.bucketCounts.push(reader.fixed64());else message.bucketCounts.push(reader.fixed64());break;case 7:if(message.explicitBounds&&message.explicitBounds.length||(message.explicitBounds=[]),(tag&7)==2)for(var end2=reader.uint32()+reader.pos;reader.pos<end2;)message.explicitBounds.push(reader.double());else message.explicitBounds.push(reader.double());break;case 8:message.exemplars&&message.exemplars.length||(message.exemplars=[]),message.exemplars.push($root.opentelemetry.proto.metrics.v1.Exemplar.decode(reader,reader.uint32()));break;case 10:message.flags=reader.uint32();break;case 11:message.min=reader.double();break;case 12:message.max=reader.double();break;default:reader.skipType(tag&7);break}}return message},HistogramDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},HistogramDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.count!=null&&message.hasOwnProperty(`count`)&&!$util.isInteger(message.count)&&!(message.count&&$util.isInteger(message.count.low)&&$util.isInteger(message.count.high)))return`count: integer|Long expected`;if(message.sum!=null&&message.hasOwnProperty(`sum`)&&(properties._sum=1,typeof message.sum!=`number`))return`sum: number expected`;if(message.bucketCounts!=null&&message.hasOwnProperty(`bucketCounts`)){if(!Array.isArray(message.bucketCounts))return`bucketCounts: array expected`;for(var i=0;i<message.bucketCounts.length;++i)if(!$util.isInteger(message.bucketCounts[i])&&!(message.bucketCounts[i]&&$util.isInteger(message.bucketCounts[i].low)&&$util.isInteger(message.bucketCounts[i].high)))return`bucketCounts: integer|Long[] expected`}if(message.explicitBounds!=null&&message.hasOwnProperty(`explicitBounds`)){if(!Array.isArray(message.explicitBounds))return`explicitBounds: array expected`;for(var i=0;i<message.explicitBounds.length;++i)if(typeof message.explicitBounds[i]!=`number`)return`explicitBounds: number[] expected`}if(message.exemplars!=null&&message.hasOwnProperty(`exemplars`)){if(!Array.isArray(message.exemplars))return`exemplars: array expected`;for(var i=0;i<message.exemplars.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Exemplar.verify(message.exemplars[i]);if(error)return`exemplars.`+error}}return message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:message.min!=null&&message.hasOwnProperty(`min`)&&(properties._min=1,typeof message.min!=`number`)?`min: number expected`:message.max!=null&&message.hasOwnProperty(`max`)&&(properties._max=1,typeof message.max!=`number`)?`max: number expected`:null},HistogramDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.HistogramDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.HistogramDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.count!=null&&($util.Long?(message.count=$util.Long.fromValue(object.count)).unsigned=!1:typeof object.count==`string`?message.count=parseInt(object.count,10):typeof object.count==`number`?message.count=object.count:typeof object.count==`object`&&(message.count=new $util.LongBits(object.count.low>>>0,object.count.high>>>0).toNumber())),object.sum!=null&&(message.sum=Number(object.sum)),object.bucketCounts){if(!Array.isArray(object.bucketCounts))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.bucketCounts: array expected`);message.bucketCounts=[];for(var i=0;i<object.bucketCounts.length;++i)$util.Long?(message.bucketCounts[i]=$util.Long.fromValue(object.bucketCounts[i])).unsigned=!1:typeof object.bucketCounts[i]==`string`?message.bucketCounts[i]=parseInt(object.bucketCounts[i],10):typeof object.bucketCounts[i]==`number`?message.bucketCounts[i]=object.bucketCounts[i]:typeof object.bucketCounts[i]==`object`&&(message.bucketCounts[i]=new $util.LongBits(object.bucketCounts[i].low>>>0,object.bucketCounts[i].high>>>0).toNumber())}if(object.explicitBounds){if(!Array.isArray(object.explicitBounds))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.explicitBounds: array expected`);message.explicitBounds=[];for(var i=0;i<object.explicitBounds.length;++i)message.explicitBounds[i]=Number(object.explicitBounds[i])}if(object.exemplars){if(!Array.isArray(object.exemplars))throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.exemplars: array expected`);message.exemplars=[];for(var i=0;i<object.exemplars.length;++i){if(typeof object.exemplars[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.HistogramDataPoint.exemplars: object expected`);message.exemplars[i]=$root.opentelemetry.proto.metrics.v1.Exemplar.fromObject(object.exemplars[i])}}return object.flags!=null&&(message.flags=object.flags>>>0),object.min!=null&&(message.min=Number(object.min)),object.max!=null&&(message.max=Number(object.max)),message},HistogramDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.bucketCounts=[],object.explicitBounds=[],object.exemplars=[],object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.count=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.count=options.longs===String?`0`:0;object.flags=0}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.count!=null&&message.hasOwnProperty(`count`)&&(typeof message.count==`number`?object.count=options.longs===String?String(message.count):message.count:object.count=options.longs===String?$util.Long.prototype.toString.call(message.count):options.longs===Number?new $util.LongBits(message.count.low>>>0,message.count.high>>>0).toNumber():message.count),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=options.json&&!isFinite(message.sum)?String(message.sum):message.sum,options.oneofs&&(object._sum=`sum`)),message.bucketCounts&&message.bucketCounts.length){object.bucketCounts=[];for(var j=0;j<message.bucketCounts.length;++j)typeof message.bucketCounts[j]==`number`?object.bucketCounts[j]=options.longs===String?String(message.bucketCounts[j]):message.bucketCounts[j]:object.bucketCounts[j]=options.longs===String?$util.Long.prototype.toString.call(message.bucketCounts[j]):options.longs===Number?new $util.LongBits(message.bucketCounts[j].low>>>0,message.bucketCounts[j].high>>>0).toNumber():message.bucketCounts[j]}if(message.explicitBounds&&message.explicitBounds.length){object.explicitBounds=[];for(var j=0;j<message.explicitBounds.length;++j)object.explicitBounds[j]=options.json&&!isFinite(message.explicitBounds[j])?String(message.explicitBounds[j]):message.explicitBounds[j]}if(message.exemplars&&message.exemplars.length){object.exemplars=[];for(var j=0;j<message.exemplars.length;++j)object.exemplars[j]=$root.opentelemetry.proto.metrics.v1.Exemplar.toObject(message.exemplars[j],options)}if(message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),message.min!=null&&message.hasOwnProperty(`min`)&&(object.min=options.json&&!isFinite(message.min)?String(message.min):message.min,options.oneofs&&(object._min=`min`)),message.max!=null&&message.hasOwnProperty(`max`)&&(object.max=options.json&&!isFinite(message.max)?String(message.max):message.max,options.oneofs&&(object._max=`max`)),object},HistogramDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},HistogramDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.HistogramDataPoint`},HistogramDataPoint})(),v1.ExponentialHistogramDataPoint=(function(){function ExponentialHistogramDataPoint(properties){if(this.attributes=[],this.exemplars=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}ExponentialHistogramDataPoint.prototype.attributes=$util.emptyArray,ExponentialHistogramDataPoint.prototype.startTimeUnixNano=null,ExponentialHistogramDataPoint.prototype.timeUnixNano=null,ExponentialHistogramDataPoint.prototype.count=null,ExponentialHistogramDataPoint.prototype.sum=null,ExponentialHistogramDataPoint.prototype.scale=null,ExponentialHistogramDataPoint.prototype.zeroCount=null,ExponentialHistogramDataPoint.prototype.positive=null,ExponentialHistogramDataPoint.prototype.negative=null,ExponentialHistogramDataPoint.prototype.flags=null,ExponentialHistogramDataPoint.prototype.exemplars=$util.emptyArray,ExponentialHistogramDataPoint.prototype.min=null,ExponentialHistogramDataPoint.prototype.max=null,ExponentialHistogramDataPoint.prototype.zeroThreshold=null;var $oneOfFields;return Object.defineProperty(ExponentialHistogramDataPoint.prototype,`_sum`,{get:$util.oneOfGetter($oneOfFields=[`sum`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(ExponentialHistogramDataPoint.prototype,`_min`,{get:$util.oneOfGetter($oneOfFields=[`min`]),set:$util.oneOfSetter($oneOfFields)}),Object.defineProperty(ExponentialHistogramDataPoint.prototype,`_max`,{get:$util.oneOfGetter($oneOfFields=[`max`]),set:$util.oneOfSetter($oneOfFields)}),ExponentialHistogramDataPoint.create=function(properties){return new ExponentialHistogramDataPoint(properties)},ExponentialHistogramDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(10).fork()).ldelim();if(message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.count!=null&&Object.hasOwnProperty.call(message,`count`)&&writer.uint32(33).fixed64(message.count),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&writer.uint32(41).double(message.sum),message.scale!=null&&Object.hasOwnProperty.call(message,`scale`)&&writer.uint32(48).sint32(message.scale),message.zeroCount!=null&&Object.hasOwnProperty.call(message,`zeroCount`)&&writer.uint32(57).fixed64(message.zeroCount),message.positive!=null&&Object.hasOwnProperty.call(message,`positive`)&&$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.encode(message.positive,writer.uint32(66).fork()).ldelim(),message.negative!=null&&Object.hasOwnProperty.call(message,`negative`)&&$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.encode(message.negative,writer.uint32(74).fork()).ldelim(),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(80).uint32(message.flags),message.exemplars!=null&&message.exemplars.length)for(var i=0;i<message.exemplars.length;++i)$root.opentelemetry.proto.metrics.v1.Exemplar.encode(message.exemplars[i],writer.uint32(90).fork()).ldelim();return message.min!=null&&Object.hasOwnProperty.call(message,`min`)&&writer.uint32(97).double(message.min),message.max!=null&&Object.hasOwnProperty.call(message,`max`)&&writer.uint32(105).double(message.max),message.zeroThreshold!=null&&Object.hasOwnProperty.call(message,`zeroThreshold`)&&writer.uint32(113).double(message.zeroThreshold),writer},ExponentialHistogramDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ExponentialHistogramDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.count=reader.fixed64();break;case 5:message.sum=reader.double();break;case 6:message.scale=reader.sint32();break;case 7:message.zeroCount=reader.fixed64();break;case 8:message.positive=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.decode(reader,reader.uint32());break;case 9:message.negative=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.decode(reader,reader.uint32());break;case 10:message.flags=reader.uint32();break;case 11:message.exemplars&&message.exemplars.length||(message.exemplars=[]),message.exemplars.push($root.opentelemetry.proto.metrics.v1.Exemplar.decode(reader,reader.uint32()));break;case 12:message.min=reader.double();break;case 13:message.max=reader.double();break;case 14:message.zeroThreshold=reader.double();break;default:reader.skipType(tag&7);break}}return message},ExponentialHistogramDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ExponentialHistogramDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.count!=null&&message.hasOwnProperty(`count`)&&!$util.isInteger(message.count)&&!(message.count&&$util.isInteger(message.count.low)&&$util.isInteger(message.count.high)))return`count: integer|Long expected`;if(message.sum!=null&&message.hasOwnProperty(`sum`)&&(properties._sum=1,typeof message.sum!=`number`))return`sum: number expected`;if(message.scale!=null&&message.hasOwnProperty(`scale`)&&!$util.isInteger(message.scale))return`scale: integer expected`;if(message.zeroCount!=null&&message.hasOwnProperty(`zeroCount`)&&!$util.isInteger(message.zeroCount)&&!(message.zeroCount&&$util.isInteger(message.zeroCount.low)&&$util.isInteger(message.zeroCount.high)))return`zeroCount: integer|Long expected`;if(message.positive!=null&&message.hasOwnProperty(`positive`)){var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.verify(message.positive);if(error)return`positive.`+error}if(message.negative!=null&&message.hasOwnProperty(`negative`)){var error=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.verify(message.negative);if(error)return`negative.`+error}if(message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags))return`flags: integer expected`;if(message.exemplars!=null&&message.hasOwnProperty(`exemplars`)){if(!Array.isArray(message.exemplars))return`exemplars: array expected`;for(var i=0;i<message.exemplars.length;++i){var error=$root.opentelemetry.proto.metrics.v1.Exemplar.verify(message.exemplars[i]);if(error)return`exemplars.`+error}}return message.min!=null&&message.hasOwnProperty(`min`)&&(properties._min=1,typeof message.min!=`number`)?`min: number expected`:message.max!=null&&message.hasOwnProperty(`max`)&&(properties._max=1,typeof message.max!=`number`)?`max: number expected`:message.zeroThreshold!=null&&message.hasOwnProperty(`zeroThreshold`)&&typeof message.zeroThreshold!=`number`?`zeroThreshold: number expected`:null},ExponentialHistogramDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.count!=null&&($util.Long?(message.count=$util.Long.fromValue(object.count)).unsigned=!1:typeof object.count==`string`?message.count=parseInt(object.count,10):typeof object.count==`number`?message.count=object.count:typeof object.count==`object`&&(message.count=new $util.LongBits(object.count.low>>>0,object.count.high>>>0).toNumber())),object.sum!=null&&(message.sum=Number(object.sum)),object.scale!=null&&(message.scale=object.scale|0),object.zeroCount!=null&&($util.Long?(message.zeroCount=$util.Long.fromValue(object.zeroCount)).unsigned=!1:typeof object.zeroCount==`string`?message.zeroCount=parseInt(object.zeroCount,10):typeof object.zeroCount==`number`?message.zeroCount=object.zeroCount:typeof object.zeroCount==`object`&&(message.zeroCount=new $util.LongBits(object.zeroCount.low>>>0,object.zeroCount.high>>>0).toNumber())),object.positive!=null){if(typeof object.positive!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.positive: object expected`);message.positive=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.fromObject(object.positive)}if(object.negative!=null){if(typeof object.negative!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.negative: object expected`);message.negative=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.fromObject(object.negative)}if(object.flags!=null&&(message.flags=object.flags>>>0),object.exemplars){if(!Array.isArray(object.exemplars))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.exemplars: array expected`);message.exemplars=[];for(var i=0;i<object.exemplars.length;++i){if(typeof object.exemplars[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.exemplars: object expected`);message.exemplars[i]=$root.opentelemetry.proto.metrics.v1.Exemplar.fromObject(object.exemplars[i])}}return object.min!=null&&(message.min=Number(object.min)),object.max!=null&&(message.max=Number(object.max)),object.zeroThreshold!=null&&(message.zeroThreshold=Number(object.zeroThreshold)),message},ExponentialHistogramDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[],object.exemplars=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.count=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.count=options.longs===String?`0`:0;if(object.scale=0,$util.Long){var long=new $util.Long(0,0,!1);object.zeroCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.zeroCount=options.longs===String?`0`:0;object.positive=null,object.negative=null,object.flags=0,object.zeroThreshold=0}if(message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.count!=null&&message.hasOwnProperty(`count`)&&(typeof message.count==`number`?object.count=options.longs===String?String(message.count):message.count:object.count=options.longs===String?$util.Long.prototype.toString.call(message.count):options.longs===Number?new $util.LongBits(message.count.low>>>0,message.count.high>>>0).toNumber():message.count),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=options.json&&!isFinite(message.sum)?String(message.sum):message.sum,options.oneofs&&(object._sum=`sum`)),message.scale!=null&&message.hasOwnProperty(`scale`)&&(object.scale=message.scale),message.zeroCount!=null&&message.hasOwnProperty(`zeroCount`)&&(typeof message.zeroCount==`number`?object.zeroCount=options.longs===String?String(message.zeroCount):message.zeroCount:object.zeroCount=options.longs===String?$util.Long.prototype.toString.call(message.zeroCount):options.longs===Number?new $util.LongBits(message.zeroCount.low>>>0,message.zeroCount.high>>>0).toNumber():message.zeroCount),message.positive!=null&&message.hasOwnProperty(`positive`)&&(object.positive=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.toObject(message.positive,options)),message.negative!=null&&message.hasOwnProperty(`negative`)&&(object.negative=$root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.toObject(message.negative,options)),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),message.exemplars&&message.exemplars.length){object.exemplars=[];for(var j=0;j<message.exemplars.length;++j)object.exemplars[j]=$root.opentelemetry.proto.metrics.v1.Exemplar.toObject(message.exemplars[j],options)}return message.min!=null&&message.hasOwnProperty(`min`)&&(object.min=options.json&&!isFinite(message.min)?String(message.min):message.min,options.oneofs&&(object._min=`min`)),message.max!=null&&message.hasOwnProperty(`max`)&&(object.max=options.json&&!isFinite(message.max)?String(message.max):message.max,options.oneofs&&(object._max=`max`)),message.zeroThreshold!=null&&message.hasOwnProperty(`zeroThreshold`)&&(object.zeroThreshold=options.json&&!isFinite(message.zeroThreshold)?String(message.zeroThreshold):message.zeroThreshold),object},ExponentialHistogramDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ExponentialHistogramDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint`},ExponentialHistogramDataPoint.Buckets=(function(){function Buckets(properties){if(this.bucketCounts=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return Buckets.prototype.offset=null,Buckets.prototype.bucketCounts=$util.emptyArray,Buckets.create=function(properties){return new Buckets(properties)},Buckets.encode=function(message,writer){if(writer||=$Writer.create(),message.offset!=null&&Object.hasOwnProperty.call(message,`offset`)&&writer.uint32(8).sint32(message.offset),message.bucketCounts!=null&&message.bucketCounts.length){writer.uint32(18).fork();for(var i=0;i<message.bucketCounts.length;++i)writer.uint64(message.bucketCounts[i]);writer.ldelim()}return writer},Buckets.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Buckets.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.offset=reader.sint32();break;case 2:if(message.bucketCounts&&message.bucketCounts.length||(message.bucketCounts=[]),(tag&7)==2)for(var end2=reader.uint32()+reader.pos;reader.pos<end2;)message.bucketCounts.push(reader.uint64());else message.bucketCounts.push(reader.uint64());break;default:reader.skipType(tag&7);break}}return message},Buckets.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Buckets.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.offset!=null&&message.hasOwnProperty(`offset`)&&!$util.isInteger(message.offset))return`offset: integer expected`;if(message.bucketCounts!=null&&message.hasOwnProperty(`bucketCounts`)){if(!Array.isArray(message.bucketCounts))return`bucketCounts: array expected`;for(var i=0;i<message.bucketCounts.length;++i)if(!$util.isInteger(message.bucketCounts[i])&&!(message.bucketCounts[i]&&$util.isInteger(message.bucketCounts[i].low)&&$util.isInteger(message.bucketCounts[i].high)))return`bucketCounts: integer|Long[] expected`}return null},Buckets.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)return object;var message=new $root.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets;if(object.offset!=null&&(message.offset=object.offset|0),object.bucketCounts){if(!Array.isArray(object.bucketCounts))throw TypeError(`.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.bucketCounts: array expected`);message.bucketCounts=[];for(var i=0;i<object.bucketCounts.length;++i)$util.Long?(message.bucketCounts[i]=$util.Long.fromValue(object.bucketCounts[i])).unsigned=!0:typeof object.bucketCounts[i]==`string`?message.bucketCounts[i]=parseInt(object.bucketCounts[i],10):typeof object.bucketCounts[i]==`number`?message.bucketCounts[i]=object.bucketCounts[i]:typeof object.bucketCounts[i]==`object`&&(message.bucketCounts[i]=new $util.LongBits(object.bucketCounts[i].low>>>0,object.bucketCounts[i].high>>>0).toNumber(!0))}return message},Buckets.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.bucketCounts=[]),options.defaults&&(object.offset=0),message.offset!=null&&message.hasOwnProperty(`offset`)&&(object.offset=message.offset),message.bucketCounts&&message.bucketCounts.length){object.bucketCounts=[];for(var j=0;j<message.bucketCounts.length;++j)typeof message.bucketCounts[j]==`number`?object.bucketCounts[j]=options.longs===String?String(message.bucketCounts[j]):message.bucketCounts[j]:object.bucketCounts[j]=options.longs===String?$util.Long.prototype.toString.call(message.bucketCounts[j]):options.longs===Number?new $util.LongBits(message.bucketCounts[j].low>>>0,message.bucketCounts[j].high>>>0).toNumber(!0):message.bucketCounts[j]}return object},Buckets.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Buckets.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets`},Buckets})(),ExponentialHistogramDataPoint})(),v1.SummaryDataPoint=(function(){function SummaryDataPoint(properties){if(this.attributes=[],this.quantileValues=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return SummaryDataPoint.prototype.attributes=$util.emptyArray,SummaryDataPoint.prototype.startTimeUnixNano=null,SummaryDataPoint.prototype.timeUnixNano=null,SummaryDataPoint.prototype.count=null,SummaryDataPoint.prototype.sum=null,SummaryDataPoint.prototype.quantileValues=$util.emptyArray,SummaryDataPoint.prototype.flags=null,SummaryDataPoint.create=function(properties){return new SummaryDataPoint(properties)},SummaryDataPoint.encode=function(message,writer){if(writer||=$Writer.create(),message.startTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`startTimeUnixNano`)&&writer.uint32(17).fixed64(message.startTimeUnixNano),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(25).fixed64(message.timeUnixNano),message.count!=null&&Object.hasOwnProperty.call(message,`count`)&&writer.uint32(33).fixed64(message.count),message.sum!=null&&Object.hasOwnProperty.call(message,`sum`)&&writer.uint32(41).double(message.sum),message.quantileValues!=null&&message.quantileValues.length)for(var i=0;i<message.quantileValues.length;++i)$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.encode(message.quantileValues[i],writer.uint32(50).fork()).ldelim();if(message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(58).fork()).ldelim();return message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(64).uint32(message.flags),writer},SummaryDataPoint.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},SummaryDataPoint.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 7:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.startTimeUnixNano=reader.fixed64();break;case 3:message.timeUnixNano=reader.fixed64();break;case 4:message.count=reader.fixed64();break;case 5:message.sum=reader.double();break;case 6:message.quantileValues&&message.quantileValues.length||(message.quantileValues=[]),message.quantileValues.push($root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.decode(reader,reader.uint32()));break;case 8:message.flags=reader.uint32();break;default:reader.skipType(tag&7);break}}return message},SummaryDataPoint.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},SummaryDataPoint.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&!$util.isInteger(message.startTimeUnixNano)&&!(message.startTimeUnixNano&&$util.isInteger(message.startTimeUnixNano.low)&&$util.isInteger(message.startTimeUnixNano.high)))return`startTimeUnixNano: integer|Long expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.count!=null&&message.hasOwnProperty(`count`)&&!$util.isInteger(message.count)&&!(message.count&&$util.isInteger(message.count.low)&&$util.isInteger(message.count.high)))return`count: integer|Long expected`;if(message.sum!=null&&message.hasOwnProperty(`sum`)&&typeof message.sum!=`number`)return`sum: number expected`;if(message.quantileValues!=null&&message.hasOwnProperty(`quantileValues`)){if(!Array.isArray(message.quantileValues))return`quantileValues: array expected`;for(var i=0;i<message.quantileValues.length;++i){var error=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.verify(message.quantileValues[i]);if(error)return`quantileValues.`+error}}return message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:null},SummaryDataPoint.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.SummaryDataPoint)return object;var message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint;if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}if(object.startTimeUnixNano!=null&&($util.Long?(message.startTimeUnixNano=$util.Long.fromValue(object.startTimeUnixNano)).unsigned=!1:typeof object.startTimeUnixNano==`string`?message.startTimeUnixNano=parseInt(object.startTimeUnixNano,10):typeof object.startTimeUnixNano==`number`?message.startTimeUnixNano=object.startTimeUnixNano:typeof object.startTimeUnixNano==`object`&&(message.startTimeUnixNano=new $util.LongBits(object.startTimeUnixNano.low>>>0,object.startTimeUnixNano.high>>>0).toNumber())),object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.count!=null&&($util.Long?(message.count=$util.Long.fromValue(object.count)).unsigned=!1:typeof object.count==`string`?message.count=parseInt(object.count,10):typeof object.count==`number`?message.count=object.count:typeof object.count==`object`&&(message.count=new $util.LongBits(object.count.low>>>0,object.count.high>>>0).toNumber())),object.sum!=null&&(message.sum=Number(object.sum)),object.quantileValues){if(!Array.isArray(object.quantileValues))throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.quantileValues: array expected`);message.quantileValues=[];for(var i=0;i<object.quantileValues.length;++i){if(typeof object.quantileValues[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.SummaryDataPoint.quantileValues: object expected`);message.quantileValues[i]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.fromObject(object.quantileValues[i])}}return object.flags!=null&&(message.flags=object.flags>>>0),message},SummaryDataPoint.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.quantileValues=[],object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.startTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.startTimeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if($util.Long){var long=new $util.Long(0,0,!1);object.count=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.count=options.longs===String?`0`:0;object.sum=0,object.flags=0}if(message.startTimeUnixNano!=null&&message.hasOwnProperty(`startTimeUnixNano`)&&(typeof message.startTimeUnixNano==`number`?object.startTimeUnixNano=options.longs===String?String(message.startTimeUnixNano):message.startTimeUnixNano:object.startTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.startTimeUnixNano):options.longs===Number?new $util.LongBits(message.startTimeUnixNano.low>>>0,message.startTimeUnixNano.high>>>0).toNumber():message.startTimeUnixNano),message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.count!=null&&message.hasOwnProperty(`count`)&&(typeof message.count==`number`?object.count=options.longs===String?String(message.count):message.count:object.count=options.longs===String?$util.Long.prototype.toString.call(message.count):options.longs===Number?new $util.LongBits(message.count.low>>>0,message.count.high>>>0).toNumber():message.count),message.sum!=null&&message.hasOwnProperty(`sum`)&&(object.sum=options.json&&!isFinite(message.sum)?String(message.sum):message.sum),message.quantileValues&&message.quantileValues.length){object.quantileValues=[];for(var j=0;j<message.quantileValues.length;++j)object.quantileValues[j]=$root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.toObject(message.quantileValues[j],options)}if(message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),object},SummaryDataPoint.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},SummaryDataPoint.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.SummaryDataPoint`},SummaryDataPoint.ValueAtQuantile=(function(){function ValueAtQuantile(properties){if(properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ValueAtQuantile.prototype.quantile=null,ValueAtQuantile.prototype.value=null,ValueAtQuantile.create=function(properties){return new ValueAtQuantile(properties)},ValueAtQuantile.encode=function(message,writer){return writer||=$Writer.create(),message.quantile!=null&&Object.hasOwnProperty.call(message,`quantile`)&&writer.uint32(9).double(message.quantile),message.value!=null&&Object.hasOwnProperty.call(message,`value`)&&writer.uint32(17).double(message.value),writer},ValueAtQuantile.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ValueAtQuantile.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.quantile=reader.double();break;case 2:message.value=reader.double();break;default:reader.skipType(tag&7);break}}return message},ValueAtQuantile.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ValueAtQuantile.verify=function(message){return typeof message!=`object`||!message?`object expected`:message.quantile!=null&&message.hasOwnProperty(`quantile`)&&typeof message.quantile!=`number`?`quantile: number expected`:message.value!=null&&message.hasOwnProperty(`value`)&&typeof message.value!=`number`?`value: number expected`:null},ValueAtQuantile.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)return object;var message=new $root.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile;return object.quantile!=null&&(message.quantile=Number(object.quantile)),object.value!=null&&(message.value=Number(object.value)),message},ValueAtQuantile.toObject=function(message,options){options||={};var object={};return options.defaults&&(object.quantile=0,object.value=0),message.quantile!=null&&message.hasOwnProperty(`quantile`)&&(object.quantile=options.json&&!isFinite(message.quantile)?String(message.quantile):message.quantile),message.value!=null&&message.hasOwnProperty(`value`)&&(object.value=options.json&&!isFinite(message.value)?String(message.value):message.value),object},ValueAtQuantile.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ValueAtQuantile.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile`},ValueAtQuantile})(),SummaryDataPoint})(),v1.Exemplar=(function(){function Exemplar(properties){if(this.filteredAttributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}Exemplar.prototype.filteredAttributes=$util.emptyArray,Exemplar.prototype.timeUnixNano=null,Exemplar.prototype.asDouble=null,Exemplar.prototype.asInt=null,Exemplar.prototype.spanId=null,Exemplar.prototype.traceId=null;var $oneOfFields;return Object.defineProperty(Exemplar.prototype,`value`,{get:$util.oneOfGetter($oneOfFields=[`asDouble`,`asInt`]),set:$util.oneOfSetter($oneOfFields)}),Exemplar.create=function(properties){return new Exemplar(properties)},Exemplar.encode=function(message,writer){if(writer||=$Writer.create(),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(17).fixed64(message.timeUnixNano),message.asDouble!=null&&Object.hasOwnProperty.call(message,`asDouble`)&&writer.uint32(25).double(message.asDouble),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(34).bytes(message.spanId),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(42).bytes(message.traceId),message.asInt!=null&&Object.hasOwnProperty.call(message,`asInt`)&&writer.uint32(49).sfixed64(message.asInt),message.filteredAttributes!=null&&message.filteredAttributes.length)for(var i=0;i<message.filteredAttributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.filteredAttributes[i],writer.uint32(58).fork()).ldelim();return writer},Exemplar.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},Exemplar.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.metrics.v1.Exemplar;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 7:message.filteredAttributes&&message.filteredAttributes.length||(message.filteredAttributes=[]),message.filteredAttributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 2:message.timeUnixNano=reader.fixed64();break;case 3:message.asDouble=reader.double();break;case 6:message.asInt=reader.sfixed64();break;case 4:message.spanId=reader.bytes();break;case 5:message.traceId=reader.bytes();break;default:reader.skipType(tag&7);break}}return message},Exemplar.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},Exemplar.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;var properties={};if(message.filteredAttributes!=null&&message.hasOwnProperty(`filteredAttributes`)){if(!Array.isArray(message.filteredAttributes))return`filteredAttributes: array expected`;for(var i=0;i<message.filteredAttributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.filteredAttributes[i]);if(error)return`filteredAttributes.`+error}}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(properties.value=1,typeof message.asDouble!=`number`))return`asDouble: number expected`;if(message.asInt!=null&&message.hasOwnProperty(`asInt`)){if(properties.value===1)return`value: multiple values`;if(properties.value=1,!$util.isInteger(message.asInt)&&!(message.asInt&&$util.isInteger(message.asInt.low)&&$util.isInteger(message.asInt.high)))return`asInt: integer|Long expected`}return message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId))?`spanId: buffer expected`:message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId))?`traceId: buffer expected`:null},Exemplar.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.metrics.v1.Exemplar)return object;var message=new $root.opentelemetry.proto.metrics.v1.Exemplar;if(object.filteredAttributes){if(!Array.isArray(object.filteredAttributes))throw TypeError(`.opentelemetry.proto.metrics.v1.Exemplar.filteredAttributes: array expected`);message.filteredAttributes=[];for(var i=0;i<object.filteredAttributes.length;++i){if(typeof object.filteredAttributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.metrics.v1.Exemplar.filteredAttributes: object expected`);message.filteredAttributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.filteredAttributes[i])}}return object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.asDouble!=null&&(message.asDouble=Number(object.asDouble)),object.asInt!=null&&($util.Long?(message.asInt=$util.Long.fromValue(object.asInt)).unsigned=!1:typeof object.asInt==`string`?message.asInt=parseInt(object.asInt,10):typeof object.asInt==`number`?message.asInt=object.asInt:typeof object.asInt==`object`&&(message.asInt=new $util.LongBits(object.asInt.low>>>0,object.asInt.high>>>0).toNumber())),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),message},Exemplar.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.filteredAttributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId)))}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.asDouble!=null&&message.hasOwnProperty(`asDouble`)&&(object.asDouble=options.json&&!isFinite(message.asDouble)?String(message.asDouble):message.asDouble,options.oneofs&&(object.value=`asDouble`)),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.asInt!=null&&message.hasOwnProperty(`asInt`)&&(typeof message.asInt==`number`?object.asInt=options.longs===String?String(message.asInt):message.asInt:object.asInt=options.longs===String?$util.Long.prototype.toString.call(message.asInt):options.longs===Number?new $util.LongBits(message.asInt.low>>>0,message.asInt.high>>>0).toNumber():message.asInt,options.oneofs&&(object.value=`asInt`)),message.filteredAttributes&&message.filteredAttributes.length){object.filteredAttributes=[];for(var j=0;j<message.filteredAttributes.length;++j)object.filteredAttributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.filteredAttributes[j],options)}return object},Exemplar.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},Exemplar.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.metrics.v1.Exemplar`},Exemplar})(),v1})(),metrics})(),proto.logs=(function(){var logs={};return logs.v1=(function(){var v1={};return v1.LogsData=(function(){function LogsData(properties){if(this.resourceLogs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return LogsData.prototype.resourceLogs=$util.emptyArray,LogsData.create=function(properties){return new LogsData(properties)},LogsData.encode=function(message,writer){if(writer||=$Writer.create(),message.resourceLogs!=null&&message.resourceLogs.length)for(var i=0;i<message.resourceLogs.length;++i)$root.opentelemetry.proto.logs.v1.ResourceLogs.encode(message.resourceLogs[i],writer.uint32(10).fork()).ldelim();return writer},LogsData.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},LogsData.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.LogsData;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resourceLogs&&message.resourceLogs.length||(message.resourceLogs=[]),message.resourceLogs.push($root.opentelemetry.proto.logs.v1.ResourceLogs.decode(reader,reader.uint32()));break;default:reader.skipType(tag&7);break}}return message},LogsData.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},LogsData.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resourceLogs!=null&&message.hasOwnProperty(`resourceLogs`)){if(!Array.isArray(message.resourceLogs))return`resourceLogs: array expected`;for(var i=0;i<message.resourceLogs.length;++i){var error=$root.opentelemetry.proto.logs.v1.ResourceLogs.verify(message.resourceLogs[i]);if(error)return`resourceLogs.`+error}}return null},LogsData.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.LogsData)return object;var message=new $root.opentelemetry.proto.logs.v1.LogsData;if(object.resourceLogs){if(!Array.isArray(object.resourceLogs))throw TypeError(`.opentelemetry.proto.logs.v1.LogsData.resourceLogs: array expected`);message.resourceLogs=[];for(var i=0;i<object.resourceLogs.length;++i){if(typeof object.resourceLogs[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.LogsData.resourceLogs: object expected`);message.resourceLogs[i]=$root.opentelemetry.proto.logs.v1.ResourceLogs.fromObject(object.resourceLogs[i])}}return message},LogsData.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.resourceLogs=[]),message.resourceLogs&&message.resourceLogs.length){object.resourceLogs=[];for(var j=0;j<message.resourceLogs.length;++j)object.resourceLogs[j]=$root.opentelemetry.proto.logs.v1.ResourceLogs.toObject(message.resourceLogs[j],options)}return object},LogsData.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},LogsData.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.LogsData`},LogsData})(),v1.ResourceLogs=(function(){function ResourceLogs(properties){if(this.scopeLogs=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ResourceLogs.prototype.resource=null,ResourceLogs.prototype.scopeLogs=$util.emptyArray,ResourceLogs.prototype.schemaUrl=null,ResourceLogs.create=function(properties){return new ResourceLogs(properties)},ResourceLogs.encode=function(message,writer){if(writer||=$Writer.create(),message.resource!=null&&Object.hasOwnProperty.call(message,`resource`)&&$root.opentelemetry.proto.resource.v1.Resource.encode(message.resource,writer.uint32(10).fork()).ldelim(),message.scopeLogs!=null&&message.scopeLogs.length)for(var i=0;i<message.scopeLogs.length;++i)$root.opentelemetry.proto.logs.v1.ScopeLogs.encode(message.scopeLogs[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ResourceLogs.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ResourceLogs.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.ResourceLogs;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.resource=$root.opentelemetry.proto.resource.v1.Resource.decode(reader,reader.uint32());break;case 2:message.scopeLogs&&message.scopeLogs.length||(message.scopeLogs=[]),message.scopeLogs.push($root.opentelemetry.proto.logs.v1.ScopeLogs.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ResourceLogs.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ResourceLogs.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.resource!=null&&message.hasOwnProperty(`resource`)){var error=$root.opentelemetry.proto.resource.v1.Resource.verify(message.resource);if(error)return`resource.`+error}if(message.scopeLogs!=null&&message.hasOwnProperty(`scopeLogs`)){if(!Array.isArray(message.scopeLogs))return`scopeLogs: array expected`;for(var i=0;i<message.scopeLogs.length;++i){var error=$root.opentelemetry.proto.logs.v1.ScopeLogs.verify(message.scopeLogs[i]);if(error)return`scopeLogs.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ResourceLogs.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.ResourceLogs)return object;var message=new $root.opentelemetry.proto.logs.v1.ResourceLogs;if(object.resource!=null){if(typeof object.resource!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ResourceLogs.resource: object expected`);message.resource=$root.opentelemetry.proto.resource.v1.Resource.fromObject(object.resource)}if(object.scopeLogs){if(!Array.isArray(object.scopeLogs))throw TypeError(`.opentelemetry.proto.logs.v1.ResourceLogs.scopeLogs: array expected`);message.scopeLogs=[];for(var i=0;i<object.scopeLogs.length;++i){if(typeof object.scopeLogs[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ResourceLogs.scopeLogs: object expected`);message.scopeLogs[i]=$root.opentelemetry.proto.logs.v1.ScopeLogs.fromObject(object.scopeLogs[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ResourceLogs.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.scopeLogs=[]),options.defaults&&(object.resource=null,object.schemaUrl=``),message.resource!=null&&message.hasOwnProperty(`resource`)&&(object.resource=$root.opentelemetry.proto.resource.v1.Resource.toObject(message.resource,options)),message.scopeLogs&&message.scopeLogs.length){object.scopeLogs=[];for(var j=0;j<message.scopeLogs.length;++j)object.scopeLogs[j]=$root.opentelemetry.proto.logs.v1.ScopeLogs.toObject(message.scopeLogs[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ResourceLogs.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ResourceLogs.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.ResourceLogs`},ResourceLogs})(),v1.ScopeLogs=(function(){function ScopeLogs(properties){if(this.logRecords=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return ScopeLogs.prototype.scope=null,ScopeLogs.prototype.logRecords=$util.emptyArray,ScopeLogs.prototype.schemaUrl=null,ScopeLogs.create=function(properties){return new ScopeLogs(properties)},ScopeLogs.encode=function(message,writer){if(writer||=$Writer.create(),message.scope!=null&&Object.hasOwnProperty.call(message,`scope`)&&$root.opentelemetry.proto.common.v1.InstrumentationScope.encode(message.scope,writer.uint32(10).fork()).ldelim(),message.logRecords!=null&&message.logRecords.length)for(var i=0;i<message.logRecords.length;++i)$root.opentelemetry.proto.logs.v1.LogRecord.encode(message.logRecords[i],writer.uint32(18).fork()).ldelim();return message.schemaUrl!=null&&Object.hasOwnProperty.call(message,`schemaUrl`)&&writer.uint32(26).string(message.schemaUrl),writer},ScopeLogs.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},ScopeLogs.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.ScopeLogs;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.decode(reader,reader.uint32());break;case 2:message.logRecords&&message.logRecords.length||(message.logRecords=[]),message.logRecords.push($root.opentelemetry.proto.logs.v1.LogRecord.decode(reader,reader.uint32()));break;case 3:message.schemaUrl=reader.string();break;default:reader.skipType(tag&7);break}}return message},ScopeLogs.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},ScopeLogs.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.scope!=null&&message.hasOwnProperty(`scope`)){var error=$root.opentelemetry.proto.common.v1.InstrumentationScope.verify(message.scope);if(error)return`scope.`+error}if(message.logRecords!=null&&message.hasOwnProperty(`logRecords`)){if(!Array.isArray(message.logRecords))return`logRecords: array expected`;for(var i=0;i<message.logRecords.length;++i){var error=$root.opentelemetry.proto.logs.v1.LogRecord.verify(message.logRecords[i]);if(error)return`logRecords.`+error}}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&!$util.isString(message.schemaUrl)?`schemaUrl: string expected`:null},ScopeLogs.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.ScopeLogs)return object;var message=new $root.opentelemetry.proto.logs.v1.ScopeLogs;if(object.scope!=null){if(typeof object.scope!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ScopeLogs.scope: object expected`);message.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.fromObject(object.scope)}if(object.logRecords){if(!Array.isArray(object.logRecords))throw TypeError(`.opentelemetry.proto.logs.v1.ScopeLogs.logRecords: array expected`);message.logRecords=[];for(var i=0;i<object.logRecords.length;++i){if(typeof object.logRecords[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.ScopeLogs.logRecords: object expected`);message.logRecords[i]=$root.opentelemetry.proto.logs.v1.LogRecord.fromObject(object.logRecords[i])}}return object.schemaUrl!=null&&(message.schemaUrl=String(object.schemaUrl)),message},ScopeLogs.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.logRecords=[]),options.defaults&&(object.scope=null,object.schemaUrl=``),message.scope!=null&&message.hasOwnProperty(`scope`)&&(object.scope=$root.opentelemetry.proto.common.v1.InstrumentationScope.toObject(message.scope,options)),message.logRecords&&message.logRecords.length){object.logRecords=[];for(var j=0;j<message.logRecords.length;++j)object.logRecords[j]=$root.opentelemetry.proto.logs.v1.LogRecord.toObject(message.logRecords[j],options)}return message.schemaUrl!=null&&message.hasOwnProperty(`schemaUrl`)&&(object.schemaUrl=message.schemaUrl),object},ScopeLogs.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},ScopeLogs.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.ScopeLogs`},ScopeLogs})(),v1.SeverityNumber=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`SEVERITY_NUMBER_UNSPECIFIED`]=0,values[valuesById[1]=`SEVERITY_NUMBER_TRACE`]=1,values[valuesById[2]=`SEVERITY_NUMBER_TRACE2`]=2,values[valuesById[3]=`SEVERITY_NUMBER_TRACE3`]=3,values[valuesById[4]=`SEVERITY_NUMBER_TRACE4`]=4,values[valuesById[5]=`SEVERITY_NUMBER_DEBUG`]=5,values[valuesById[6]=`SEVERITY_NUMBER_DEBUG2`]=6,values[valuesById[7]=`SEVERITY_NUMBER_DEBUG3`]=7,values[valuesById[8]=`SEVERITY_NUMBER_DEBUG4`]=8,values[valuesById[9]=`SEVERITY_NUMBER_INFO`]=9,values[valuesById[10]=`SEVERITY_NUMBER_INFO2`]=10,values[valuesById[11]=`SEVERITY_NUMBER_INFO3`]=11,values[valuesById[12]=`SEVERITY_NUMBER_INFO4`]=12,values[valuesById[13]=`SEVERITY_NUMBER_WARN`]=13,values[valuesById[14]=`SEVERITY_NUMBER_WARN2`]=14,values[valuesById[15]=`SEVERITY_NUMBER_WARN3`]=15,values[valuesById[16]=`SEVERITY_NUMBER_WARN4`]=16,values[valuesById[17]=`SEVERITY_NUMBER_ERROR`]=17,values[valuesById[18]=`SEVERITY_NUMBER_ERROR2`]=18,values[valuesById[19]=`SEVERITY_NUMBER_ERROR3`]=19,values[valuesById[20]=`SEVERITY_NUMBER_ERROR4`]=20,values[valuesById[21]=`SEVERITY_NUMBER_FATAL`]=21,values[valuesById[22]=`SEVERITY_NUMBER_FATAL2`]=22,values[valuesById[23]=`SEVERITY_NUMBER_FATAL3`]=23,values[valuesById[24]=`SEVERITY_NUMBER_FATAL4`]=24,values})(),v1.LogRecordFlags=(function(){var valuesById={},values=Object.create(valuesById);return values[valuesById[0]=`LOG_RECORD_FLAGS_DO_NOT_USE`]=0,values[valuesById[255]=`LOG_RECORD_FLAGS_TRACE_FLAGS_MASK`]=255,values})(),v1.LogRecord=(function(){function LogRecord(properties){if(this.attributes=[],properties)for(var keys=Object.keys(properties),i=0;i<keys.length;++i)properties[keys[i]]!=null&&(this[keys[i]]=properties[keys[i]])}return LogRecord.prototype.timeUnixNano=null,LogRecord.prototype.observedTimeUnixNano=null,LogRecord.prototype.severityNumber=null,LogRecord.prototype.severityText=null,LogRecord.prototype.body=null,LogRecord.prototype.attributes=$util.emptyArray,LogRecord.prototype.droppedAttributesCount=null,LogRecord.prototype.flags=null,LogRecord.prototype.traceId=null,LogRecord.prototype.spanId=null,LogRecord.prototype.eventName=null,LogRecord.create=function(properties){return new LogRecord(properties)},LogRecord.encode=function(message,writer){if(writer||=$Writer.create(),message.timeUnixNano!=null&&Object.hasOwnProperty.call(message,`timeUnixNano`)&&writer.uint32(9).fixed64(message.timeUnixNano),message.severityNumber!=null&&Object.hasOwnProperty.call(message,`severityNumber`)&&writer.uint32(16).int32(message.severityNumber),message.severityText!=null&&Object.hasOwnProperty.call(message,`severityText`)&&writer.uint32(26).string(message.severityText),message.body!=null&&Object.hasOwnProperty.call(message,`body`)&&$root.opentelemetry.proto.common.v1.AnyValue.encode(message.body,writer.uint32(42).fork()).ldelim(),message.attributes!=null&&message.attributes.length)for(var i=0;i<message.attributes.length;++i)$root.opentelemetry.proto.common.v1.KeyValue.encode(message.attributes[i],writer.uint32(50).fork()).ldelim();return message.droppedAttributesCount!=null&&Object.hasOwnProperty.call(message,`droppedAttributesCount`)&&writer.uint32(56).uint32(message.droppedAttributesCount),message.flags!=null&&Object.hasOwnProperty.call(message,`flags`)&&writer.uint32(69).fixed32(message.flags),message.traceId!=null&&Object.hasOwnProperty.call(message,`traceId`)&&writer.uint32(74).bytes(message.traceId),message.spanId!=null&&Object.hasOwnProperty.call(message,`spanId`)&&writer.uint32(82).bytes(message.spanId),message.observedTimeUnixNano!=null&&Object.hasOwnProperty.call(message,`observedTimeUnixNano`)&&writer.uint32(89).fixed64(message.observedTimeUnixNano),message.eventName!=null&&Object.hasOwnProperty.call(message,`eventName`)&&writer.uint32(98).string(message.eventName),writer},LogRecord.encodeDelimited=function(message,writer){return this.encode(message,writer).ldelim()},LogRecord.decode=function(reader,length,error){reader instanceof $Reader||(reader=$Reader.create(reader));for(var end=length===void 0?reader.len:reader.pos+length,message=new $root.opentelemetry.proto.logs.v1.LogRecord;reader.pos<end;){var tag=reader.uint32();if(tag===error)break;switch(tag>>>3){case 1:message.timeUnixNano=reader.fixed64();break;case 11:message.observedTimeUnixNano=reader.fixed64();break;case 2:message.severityNumber=reader.int32();break;case 3:message.severityText=reader.string();break;case 5:message.body=$root.opentelemetry.proto.common.v1.AnyValue.decode(reader,reader.uint32());break;case 6:message.attributes&&message.attributes.length||(message.attributes=[]),message.attributes.push($root.opentelemetry.proto.common.v1.KeyValue.decode(reader,reader.uint32()));break;case 7:message.droppedAttributesCount=reader.uint32();break;case 8:message.flags=reader.fixed32();break;case 9:message.traceId=reader.bytes();break;case 10:message.spanId=reader.bytes();break;case 12:message.eventName=reader.string();break;default:reader.skipType(tag&7);break}}return message},LogRecord.decodeDelimited=function(reader){return reader instanceof $Reader||(reader=new $Reader(reader)),this.decode(reader,reader.uint32())},LogRecord.verify=function(message){if(typeof message!=`object`||!message)return`object expected`;if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&!$util.isInteger(message.timeUnixNano)&&!(message.timeUnixNano&&$util.isInteger(message.timeUnixNano.low)&&$util.isInteger(message.timeUnixNano.high)))return`timeUnixNano: integer|Long expected`;if(message.observedTimeUnixNano!=null&&message.hasOwnProperty(`observedTimeUnixNano`)&&!$util.isInteger(message.observedTimeUnixNano)&&!(message.observedTimeUnixNano&&$util.isInteger(message.observedTimeUnixNano.low)&&$util.isInteger(message.observedTimeUnixNano.high)))return`observedTimeUnixNano: integer|Long expected`;if(message.severityNumber!=null&&message.hasOwnProperty(`severityNumber`))switch(message.severityNumber){default:return`severityNumber: enum value expected`;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:break}if(message.severityText!=null&&message.hasOwnProperty(`severityText`)&&!$util.isString(message.severityText))return`severityText: string expected`;if(message.body!=null&&message.hasOwnProperty(`body`)){var error=$root.opentelemetry.proto.common.v1.AnyValue.verify(message.body);if(error)return`body.`+error}if(message.attributes!=null&&message.hasOwnProperty(`attributes`)){if(!Array.isArray(message.attributes))return`attributes: array expected`;for(var i=0;i<message.attributes.length;++i){var error=$root.opentelemetry.proto.common.v1.KeyValue.verify(message.attributes[i]);if(error)return`attributes.`+error}}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&!$util.isInteger(message.droppedAttributesCount)?`droppedAttributesCount: integer expected`:message.flags!=null&&message.hasOwnProperty(`flags`)&&!$util.isInteger(message.flags)?`flags: integer expected`:message.traceId!=null&&message.hasOwnProperty(`traceId`)&&!(message.traceId&&typeof message.traceId.length==`number`||$util.isString(message.traceId))?`traceId: buffer expected`:message.spanId!=null&&message.hasOwnProperty(`spanId`)&&!(message.spanId&&typeof message.spanId.length==`number`||$util.isString(message.spanId))?`spanId: buffer expected`:message.eventName!=null&&message.hasOwnProperty(`eventName`)&&!$util.isString(message.eventName)?`eventName: string expected`:null},LogRecord.fromObject=function(object){if(object instanceof $root.opentelemetry.proto.logs.v1.LogRecord)return object;var message=new $root.opentelemetry.proto.logs.v1.LogRecord;switch(object.timeUnixNano!=null&&($util.Long?(message.timeUnixNano=$util.Long.fromValue(object.timeUnixNano)).unsigned=!1:typeof object.timeUnixNano==`string`?message.timeUnixNano=parseInt(object.timeUnixNano,10):typeof object.timeUnixNano==`number`?message.timeUnixNano=object.timeUnixNano:typeof object.timeUnixNano==`object`&&(message.timeUnixNano=new $util.LongBits(object.timeUnixNano.low>>>0,object.timeUnixNano.high>>>0).toNumber())),object.observedTimeUnixNano!=null&&($util.Long?(message.observedTimeUnixNano=$util.Long.fromValue(object.observedTimeUnixNano)).unsigned=!1:typeof object.observedTimeUnixNano==`string`?message.observedTimeUnixNano=parseInt(object.observedTimeUnixNano,10):typeof object.observedTimeUnixNano==`number`?message.observedTimeUnixNano=object.observedTimeUnixNano:typeof object.observedTimeUnixNano==`object`&&(message.observedTimeUnixNano=new $util.LongBits(object.observedTimeUnixNano.low>>>0,object.observedTimeUnixNano.high>>>0).toNumber())),object.severityNumber){default:if(typeof object.severityNumber==`number`){message.severityNumber=object.severityNumber;break}break;case`SEVERITY_NUMBER_UNSPECIFIED`:case 0:message.severityNumber=0;break;case`SEVERITY_NUMBER_TRACE`:case 1:message.severityNumber=1;break;case`SEVERITY_NUMBER_TRACE2`:case 2:message.severityNumber=2;break;case`SEVERITY_NUMBER_TRACE3`:case 3:message.severityNumber=3;break;case`SEVERITY_NUMBER_TRACE4`:case 4:message.severityNumber=4;break;case`SEVERITY_NUMBER_DEBUG`:case 5:message.severityNumber=5;break;case`SEVERITY_NUMBER_DEBUG2`:case 6:message.severityNumber=6;break;case`SEVERITY_NUMBER_DEBUG3`:case 7:message.severityNumber=7;break;case`SEVERITY_NUMBER_DEBUG4`:case 8:message.severityNumber=8;break;case`SEVERITY_NUMBER_INFO`:case 9:message.severityNumber=9;break;case`SEVERITY_NUMBER_INFO2`:case 10:message.severityNumber=10;break;case`SEVERITY_NUMBER_INFO3`:case 11:message.severityNumber=11;break;case`SEVERITY_NUMBER_INFO4`:case 12:message.severityNumber=12;break;case`SEVERITY_NUMBER_WARN`:case 13:message.severityNumber=13;break;case`SEVERITY_NUMBER_WARN2`:case 14:message.severityNumber=14;break;case`SEVERITY_NUMBER_WARN3`:case 15:message.severityNumber=15;break;case`SEVERITY_NUMBER_WARN4`:case 16:message.severityNumber=16;break;case`SEVERITY_NUMBER_ERROR`:case 17:message.severityNumber=17;break;case`SEVERITY_NUMBER_ERROR2`:case 18:message.severityNumber=18;break;case`SEVERITY_NUMBER_ERROR3`:case 19:message.severityNumber=19;break;case`SEVERITY_NUMBER_ERROR4`:case 20:message.severityNumber=20;break;case`SEVERITY_NUMBER_FATAL`:case 21:message.severityNumber=21;break;case`SEVERITY_NUMBER_FATAL2`:case 22:message.severityNumber=22;break;case`SEVERITY_NUMBER_FATAL3`:case 23:message.severityNumber=23;break;case`SEVERITY_NUMBER_FATAL4`:case 24:message.severityNumber=24;break}if(object.severityText!=null&&(message.severityText=String(object.severityText)),object.body!=null){if(typeof object.body!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.LogRecord.body: object expected`);message.body=$root.opentelemetry.proto.common.v1.AnyValue.fromObject(object.body)}if(object.attributes){if(!Array.isArray(object.attributes))throw TypeError(`.opentelemetry.proto.logs.v1.LogRecord.attributes: array expected`);message.attributes=[];for(var i=0;i<object.attributes.length;++i){if(typeof object.attributes[i]!=`object`)throw TypeError(`.opentelemetry.proto.logs.v1.LogRecord.attributes: object expected`);message.attributes[i]=$root.opentelemetry.proto.common.v1.KeyValue.fromObject(object.attributes[i])}}return object.droppedAttributesCount!=null&&(message.droppedAttributesCount=object.droppedAttributesCount>>>0),object.flags!=null&&(message.flags=object.flags>>>0),object.traceId!=null&&(typeof object.traceId==`string`?$util.base64.decode(object.traceId,message.traceId=$util.newBuffer($util.base64.length(object.traceId)),0):object.traceId.length>=0&&(message.traceId=object.traceId)),object.spanId!=null&&(typeof object.spanId==`string`?$util.base64.decode(object.spanId,message.spanId=$util.newBuffer($util.base64.length(object.spanId)),0):object.spanId.length>=0&&(message.spanId=object.spanId)),object.eventName!=null&&(message.eventName=String(object.eventName)),message},LogRecord.toObject=function(message,options){options||={};var object={};if((options.arrays||options.defaults)&&(object.attributes=[]),options.defaults){if($util.Long){var long=new $util.Long(0,0,!1);object.timeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.timeUnixNano=options.longs===String?`0`:0;if(object.severityNumber=options.enums===String?`SEVERITY_NUMBER_UNSPECIFIED`:0,object.severityText=``,object.body=null,object.droppedAttributesCount=0,object.flags=0,options.bytes===String?object.traceId=``:(object.traceId=[],options.bytes!==Array&&(object.traceId=$util.newBuffer(object.traceId))),options.bytes===String?object.spanId=``:(object.spanId=[],options.bytes!==Array&&(object.spanId=$util.newBuffer(object.spanId))),$util.Long){var long=new $util.Long(0,0,!1);object.observedTimeUnixNano=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.observedTimeUnixNano=options.longs===String?`0`:0;object.eventName=``}if(message.timeUnixNano!=null&&message.hasOwnProperty(`timeUnixNano`)&&(typeof message.timeUnixNano==`number`?object.timeUnixNano=options.longs===String?String(message.timeUnixNano):message.timeUnixNano:object.timeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.timeUnixNano):options.longs===Number?new $util.LongBits(message.timeUnixNano.low>>>0,message.timeUnixNano.high>>>0).toNumber():message.timeUnixNano),message.severityNumber!=null&&message.hasOwnProperty(`severityNumber`)&&(object.severityNumber=options.enums===String?$root.opentelemetry.proto.logs.v1.SeverityNumber[message.severityNumber]===void 0?message.severityNumber:$root.opentelemetry.proto.logs.v1.SeverityNumber[message.severityNumber]:message.severityNumber),message.severityText!=null&&message.hasOwnProperty(`severityText`)&&(object.severityText=message.severityText),message.body!=null&&message.hasOwnProperty(`body`)&&(object.body=$root.opentelemetry.proto.common.v1.AnyValue.toObject(message.body,options)),message.attributes&&message.attributes.length){object.attributes=[];for(var j=0;j<message.attributes.length;++j)object.attributes[j]=$root.opentelemetry.proto.common.v1.KeyValue.toObject(message.attributes[j],options)}return message.droppedAttributesCount!=null&&message.hasOwnProperty(`droppedAttributesCount`)&&(object.droppedAttributesCount=message.droppedAttributesCount),message.flags!=null&&message.hasOwnProperty(`flags`)&&(object.flags=message.flags),message.traceId!=null&&message.hasOwnProperty(`traceId`)&&(object.traceId=options.bytes===String?$util.base64.encode(message.traceId,0,message.traceId.length):options.bytes===Array?Array.prototype.slice.call(message.traceId):message.traceId),message.spanId!=null&&message.hasOwnProperty(`spanId`)&&(object.spanId=options.bytes===String?$util.base64.encode(message.spanId,0,message.spanId.length):options.bytes===Array?Array.prototype.slice.call(message.spanId):message.spanId),message.observedTimeUnixNano!=null&&message.hasOwnProperty(`observedTimeUnixNano`)&&(typeof message.observedTimeUnixNano==`number`?object.observedTimeUnixNano=options.longs===String?String(message.observedTimeUnixNano):message.observedTimeUnixNano:object.observedTimeUnixNano=options.longs===String?$util.Long.prototype.toString.call(message.observedTimeUnixNano):options.longs===Number?new $util.LongBits(message.observedTimeUnixNano.low>>>0,message.observedTimeUnixNano.high>>>0).toNumber():message.observedTimeUnixNano),message.eventName!=null&&message.hasOwnProperty(`eventName`)&&(object.eventName=message.eventName),object},LogRecord.prototype.toJSON=function(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)},LogRecord.getTypeUrl=function(typeUrlPrefix){return typeUrlPrefix===void 0&&(typeUrlPrefix=`type.googleapis.com`),typeUrlPrefix+`/opentelemetry.proto.logs.v1.LogRecord`},LogRecord})(),v1})(),logs})(),proto})(),opentelemetry})(),module.exports=$root})),require_hex_to_binary=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.hexToBinary=void 0;function intValue(charCode){return charCode>=48&&charCode<=57?charCode-48:charCode>=97&&charCode<=102?charCode-87:charCode-55}function hexToBinary(hexStr){let buf=new Uint8Array(hexStr.length/2),offset=0;for(let i=0;i<hexStr.length;i+=2){let hi=intValue(hexStr.charCodeAt(i)),lo=intValue(hexStr.charCodeAt(i+1));buf[offset++]=hi<<4|lo}return buf}exports.hexToBinary=hexToBinary})),require_utils$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getOtlpEncoder=exports.encodeAsString=exports.encodeAsLongBits=exports.toLongBits=exports.hrTimeToNanos=void 0;let core_1=require_src$8(),hex_to_binary_1=require_hex_to_binary();function hrTimeToNanos(hrTime){let NANOSECONDS=BigInt(1e9);return BigInt(Math.trunc(hrTime[0]))*NANOSECONDS+BigInt(Math.trunc(hrTime[1]))}exports.hrTimeToNanos=hrTimeToNanos;function toLongBits(value){return{low:Number(BigInt.asUintN(32,value)),high:Number(BigInt.asUintN(32,value>>BigInt(32)))}}exports.toLongBits=toLongBits;function encodeAsLongBits(hrTime){return toLongBits(hrTimeToNanos(hrTime))}exports.encodeAsLongBits=encodeAsLongBits;function encodeAsString(hrTime){return hrTimeToNanos(hrTime).toString()}exports.encodeAsString=encodeAsString;let encodeTimestamp=typeof BigInt<`u`?encodeAsString:core_1.hrTimeToNanoseconds;function identity(value){return value}function optionalHexToBinary(str){if(str!==void 0)return(0,hex_to_binary_1.hexToBinary)(str)}let DEFAULT_ENCODER={encodeHrTime:encodeAsLongBits,encodeSpanContext:hex_to_binary_1.hexToBinary,encodeOptionalSpanContext:optionalHexToBinary};function getOtlpEncoder(options){if(options===void 0)return DEFAULT_ENCODER;let useLongBits=options.useLongBits??!0,useHex=options.useHex??!1;return{encodeHrTime:useLongBits?encodeAsLongBits:encodeTimestamp,encodeSpanContext:useHex?identity:hex_to_binary_1.hexToBinary,encodeOptionalSpanContext:useHex?identity:optionalHexToBinary}}exports.getOtlpEncoder=getOtlpEncoder})),require_internal$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.toAnyValue=exports.toKeyValue=exports.toAttributes=exports.createInstrumentationScope=exports.createResource=void 0;function createResource(resource){let result={attributes:toAttributes(resource.attributes),droppedAttributesCount:0},schemaUrl=resource.schemaUrl;return schemaUrl&&schemaUrl!==``&&(result.schemaUrl=schemaUrl),result}exports.createResource=createResource;function createInstrumentationScope(scope){return{name:scope.name,version:scope.version}}exports.createInstrumentationScope=createInstrumentationScope;function toAttributes(attributes){return Object.keys(attributes).map(key=>toKeyValue(key,attributes[key]))}exports.toAttributes=toAttributes;function toKeyValue(key,value){return{key,value:toAnyValue(value)}}exports.toKeyValue=toKeyValue;function toAnyValue(value){let t=typeof value;return t===`string`?{stringValue:value}:t===`number`?Number.isInteger(value)?{intValue:value}:{doubleValue:value}:t===`boolean`?{boolValue:value}:value instanceof Uint8Array?{bytesValue:value}:Array.isArray(value)?{arrayValue:{values:value.map(toAnyValue)}}:t===`object`&&value!=null?{kvlistValue:{values:Object.entries(value).map(([k,v])=>toKeyValue(k,v))}}:{}}exports.toAnyValue=toAnyValue})),require_internal$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.toLogAttributes=exports.createExportLogsServiceRequest=void 0;let utils_1=require_utils$1(),internal_1=require_internal$3();function createExportLogsServiceRequest(logRecords,options){return{resourceLogs:logRecordsToResourceLogs(logRecords,(0,utils_1.getOtlpEncoder)(options))}}exports.createExportLogsServiceRequest=createExportLogsServiceRequest;function createResourceMap(logRecords){let resourceMap=new Map;for(let record of logRecords){let{resource,instrumentationScope:{name,version:version$1=``,schemaUrl=``}}=record,ismMap=resourceMap.get(resource);ismMap||(ismMap=new Map,resourceMap.set(resource,ismMap));let ismKey=`${name}@${version$1}:${schemaUrl}`,records=ismMap.get(ismKey);records||(records=[],ismMap.set(ismKey,records)),records.push(record)}return resourceMap}function logRecordsToResourceLogs(logRecords,encoder){let resourceMap=createResourceMap(logRecords);return Array.from(resourceMap,([resource,ismMap])=>{let processedResource=(0,internal_1.createResource)(resource);return{resource:processedResource,scopeLogs:Array.from(ismMap,([,scopeLogs])=>({scope:(0,internal_1.createInstrumentationScope)(scopeLogs[0].instrumentationScope),logRecords:scopeLogs.map(log=>toLogRecord(log,encoder)),schemaUrl:scopeLogs[0].instrumentationScope.schemaUrl})),schemaUrl:processedResource.schemaUrl}})}function toLogRecord(log,encoder){return{timeUnixNano:encoder.encodeHrTime(log.hrTime),observedTimeUnixNano:encoder.encodeHrTime(log.hrTimeObserved),severityNumber:toSeverityNumber(log.severityNumber),severityText:log.severityText,body:(0,internal_1.toAnyValue)(log.body),eventName:log.eventName,attributes:toLogAttributes(log.attributes),droppedAttributesCount:log.droppedAttributesCount,flags:log.spanContext?.traceFlags,traceId:encoder.encodeOptionalSpanContext(log.spanContext?.traceId),spanId:encoder.encodeOptionalSpanContext(log.spanContext?.spanId)}}function toSeverityNumber(severityNumber){return severityNumber}function toLogAttributes(attributes){return Object.keys(attributes).map(key=>(0,internal_1.toKeyValue)(key,attributes[key]))}exports.toLogAttributes=toLogAttributes})),require_logs$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufLogsSerializer=void 0;let root=require_root(),internal_1=require_internal$2(),logsResponseType=root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse,logsRequestType=root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;exports.ProtobufLogsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportLogsServiceRequest)(arg);return logsRequestType.encode(request).finish()},deserializeResponse:arg=>logsResponseType.decode(arg)}})),require_protobuf$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufLogsSerializer=void 0;var logs_1=require_logs$1();Object.defineProperty(exports,`ProtobufLogsSerializer`,{enumerable:!0,get:function(){return logs_1.ProtobufLogsSerializer}})})),require_AggregationTemporality=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AggregationTemporality=void 0,(function(AggregationTemporality){AggregationTemporality[AggregationTemporality.DELTA=0]=`DELTA`,AggregationTemporality[AggregationTemporality.CUMULATIVE=1]=`CUMULATIVE`})(exports.AggregationTemporality||={})})),require_MetricData=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DataPointType=exports.InstrumentType=void 0,(function(InstrumentType){InstrumentType.COUNTER=`COUNTER`,InstrumentType.GAUGE=`GAUGE`,InstrumentType.HISTOGRAM=`HISTOGRAM`,InstrumentType.UP_DOWN_COUNTER=`UP_DOWN_COUNTER`,InstrumentType.OBSERVABLE_COUNTER=`OBSERVABLE_COUNTER`,InstrumentType.OBSERVABLE_GAUGE=`OBSERVABLE_GAUGE`,InstrumentType.OBSERVABLE_UP_DOWN_COUNTER=`OBSERVABLE_UP_DOWN_COUNTER`})(exports.InstrumentType||={}),(function(DataPointType){DataPointType[DataPointType.HISTOGRAM=0]=`HISTOGRAM`,DataPointType[DataPointType.EXPONENTIAL_HISTOGRAM=1]=`EXPONENTIAL_HISTOGRAM`,DataPointType[DataPointType.GAUGE=2]=`GAUGE`,DataPointType[DataPointType.SUM=3]=`SUM`})(exports.DataPointType||={})})),require_utils=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.equalsCaseInsensitive=exports.binarySearchUB=exports.setEquals=exports.FlatMap=exports.isPromiseAllSettledRejectionResult=exports.PromiseAllSettled=exports.callWithTimeout=exports.TimeoutError=exports.instrumentationScopeId=exports.hashAttributes=exports.isNotNullish=void 0;function isNotNullish(item){return item!=null}exports.isNotNullish=isNotNullish;function hashAttributes(attributes){let keys=Object.keys(attributes);return keys.length===0?``:(keys=keys.sort(),JSON.stringify(keys.map(key=>[key,attributes[key]])))}exports.hashAttributes=hashAttributes;function instrumentationScopeId(instrumentationScope){return`${instrumentationScope.name}:${instrumentationScope.version??``}:${instrumentationScope.schemaUrl??``}`}exports.instrumentationScopeId=instrumentationScopeId;var TimeoutError=class TimeoutError extends Error{constructor(message){super(message),Object.setPrototypeOf(this,TimeoutError.prototype)}};exports.TimeoutError=TimeoutError;function callWithTimeout(promise,timeout){let timeoutHandle,timeoutPromise=new Promise(function(_resolve,reject){timeoutHandle=setTimeout(function(){reject(new TimeoutError(`Operation timed out.`))},timeout)});return Promise.race([promise,timeoutPromise]).then(result=>(clearTimeout(timeoutHandle),result),reason=>{throw clearTimeout(timeoutHandle),reason})}exports.callWithTimeout=callWithTimeout;async function PromiseAllSettled(promises){return Promise.all(promises.map(async p$1=>{try{return{status:`fulfilled`,value:await p$1}}catch(e){return{status:`rejected`,reason:e}}}))}exports.PromiseAllSettled=PromiseAllSettled;function isPromiseAllSettledRejectionResult(it){return it.status===`rejected`}exports.isPromiseAllSettledRejectionResult=isPromiseAllSettledRejectionResult;function FlatMap(arr,fn){let result=[];return arr.forEach(it=>{result.push(...fn(it))}),result}exports.FlatMap=FlatMap;function setEquals(lhs,rhs){if(lhs.size!==rhs.size)return!1;for(let item of lhs)if(!rhs.has(item))return!1;return!0}exports.setEquals=setEquals;function binarySearchUB(arr,value){let lo=0,hi=arr.length-1,ret=arr.length;for(;hi>=lo;){let mid=lo+Math.trunc((hi-lo)/2);arr[mid]<value?lo=mid+1:(ret=mid,hi=mid-1)}return ret}exports.binarySearchUB=binarySearchUB;function equalsCaseInsensitive(lhs,rhs){return lhs.toLowerCase()===rhs.toLowerCase()}exports.equalsCaseInsensitive=equalsCaseInsensitive})),require_types$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AggregatorKind=void 0,(function(AggregatorKind){AggregatorKind[AggregatorKind.DROP=0]=`DROP`,AggregatorKind[AggregatorKind.SUM=1]=`SUM`,AggregatorKind[AggregatorKind.LAST_VALUE=2]=`LAST_VALUE`,AggregatorKind[AggregatorKind.HISTOGRAM=3]=`HISTOGRAM`,AggregatorKind[AggregatorKind.EXPONENTIAL_HISTOGRAM=4]=`EXPONENTIAL_HISTOGRAM`})(exports.AggregatorKind||={})})),require_Drop=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DropAggregator=void 0;let types_1=require_types$1();exports.DropAggregator=class{kind=types_1.AggregatorKind.DROP;createAccumulation(){}merge(_previous,_delta){}diff(_previous,_current){}toMetricData(_descriptor,_aggregationTemporality,_accumulationByAttributes,_endTime){}}})),require_Histogram=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.HistogramAggregator=exports.HistogramAccumulation=void 0;let types_1=require_types$1(),MetricData_1=require_MetricData(),utils_1=require_utils();function createNewEmptyCheckpoint(boundaries){let counts=boundaries.map(()=>0);return counts.push(0),{buckets:{boundaries,counts},sum:0,count:0,hasMinMax:!1,min:1/0,max:-1/0}}var HistogramAccumulation=class{startTime;_boundaries;_recordMinMax;_current;constructor(startTime,_boundaries,_recordMinMax=!0,_current=createNewEmptyCheckpoint(_boundaries)){this.startTime=startTime,this._boundaries=_boundaries,this._recordMinMax=_recordMinMax,this._current=_current}record(value){if(Number.isNaN(value))return;this._current.count+=1,this._current.sum+=value,this._recordMinMax&&(this._current.min=Math.min(value,this._current.min),this._current.max=Math.max(value,this._current.max),this._current.hasMinMax=!0);let idx=(0,utils_1.binarySearchUB)(this._boundaries,value);this._current.buckets.counts[idx]+=1}setStartTime(startTime){this.startTime=startTime}toPointValue(){return this._current}};exports.HistogramAccumulation=HistogramAccumulation,exports.HistogramAggregator=class{_boundaries;_recordMinMax;kind=types_1.AggregatorKind.HISTOGRAM;constructor(_boundaries,_recordMinMax){this._boundaries=_boundaries,this._recordMinMax=_recordMinMax}createAccumulation(startTime){return new HistogramAccumulation(startTime,this._boundaries,this._recordMinMax)}merge(previous,delta){let previousValue=previous.toPointValue(),deltaValue=delta.toPointValue(),previousCounts=previousValue.buckets.counts,deltaCounts=deltaValue.buckets.counts,mergedCounts=Array(previousCounts.length);for(let idx=0;idx<previousCounts.length;idx++)mergedCounts[idx]=previousCounts[idx]+deltaCounts[idx];let min=1/0,max=-1/0;return this._recordMinMax&&(previousValue.hasMinMax&&deltaValue.hasMinMax?(min=Math.min(previousValue.min,deltaValue.min),max=Math.max(previousValue.max,deltaValue.max)):previousValue.hasMinMax?(min=previousValue.min,max=previousValue.max):deltaValue.hasMinMax&&(min=deltaValue.min,max=deltaValue.max)),new HistogramAccumulation(previous.startTime,previousValue.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:previousValue.buckets.boundaries,counts:mergedCounts},count:previousValue.count+deltaValue.count,sum:previousValue.sum+deltaValue.sum,hasMinMax:this._recordMinMax&&(previousValue.hasMinMax||deltaValue.hasMinMax),min,max})}diff(previous,current){let previousValue=previous.toPointValue(),currentValue=current.toPointValue(),previousCounts=previousValue.buckets.counts,currentCounts=currentValue.buckets.counts,diffedCounts=Array(previousCounts.length);for(let idx=0;idx<previousCounts.length;idx++)diffedCounts[idx]=currentCounts[idx]-previousCounts[idx];return new HistogramAccumulation(current.startTime,previousValue.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:previousValue.buckets.boundaries,counts:diffedCounts},count:currentValue.count-previousValue.count,sum:currentValue.sum-previousValue.sum,hasMinMax:!1,min:1/0,max:-1/0})}toMetricData(descriptor,aggregationTemporality,accumulationByAttributes,endTime){return{descriptor,aggregationTemporality,dataPointType:MetricData_1.DataPointType.HISTOGRAM,dataPoints:accumulationByAttributes.map(([attributes,accumulation])=>{let pointValue=accumulation.toPointValue(),allowsNegativeValues=descriptor.type===MetricData_1.InstrumentType.GAUGE||descriptor.type===MetricData_1.InstrumentType.UP_DOWN_COUNTER||descriptor.type===MetricData_1.InstrumentType.OBSERVABLE_GAUGE||descriptor.type===MetricData_1.InstrumentType.OBSERVABLE_UP_DOWN_COUNTER;return{attributes,startTime:accumulation.startTime,endTime,value:{min:pointValue.hasMinMax?pointValue.min:void 0,max:pointValue.hasMinMax?pointValue.max:void 0,sum:allowsNegativeValues?void 0:pointValue.sum,buckets:pointValue.buckets,count:pointValue.count}}})}}}})),require_Buckets=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Buckets=void 0,exports.Buckets=class Buckets{backing;indexBase;indexStart;indexEnd;constructor(backing=new BucketsBacking,indexBase=0,indexStart=0,indexEnd=0){this.backing=backing,this.indexBase=indexBase,this.indexStart=indexStart,this.indexEnd=indexEnd}get offset(){return this.indexStart}get length(){return this.backing.length===0||this.indexEnd===this.indexStart&&this.at(0)===0?0:this.indexEnd-this.indexStart+1}counts(){return Array.from({length:this.length},(_,i)=>this.at(i))}at(position){let bias=this.indexBase-this.indexStart;return position<bias&&(position+=this.backing.length),position-=bias,this.backing.countAt(position)}incrementBucket(bucketIndex,increment){this.backing.increment(bucketIndex,increment)}decrementBucket(bucketIndex,decrement){this.backing.decrement(bucketIndex,decrement)}trim(){for(let i=0;i<this.length;i++)if(this.at(i)!==0){this.indexStart+=i;break}else if(i===this.length-1){this.indexStart=this.indexEnd=this.indexBase=0;return}for(let i=this.length-1;i>=0;i--)if(this.at(i)!==0){this.indexEnd-=this.length-i-1;break}this._rotate()}downscale(by){this._rotate();let size=1+this.indexEnd-this.indexStart,each=1<<by,inpos=0,outpos=0;for(let pos=this.indexStart;pos<=this.indexEnd;){let mod=pos%each;mod<0&&(mod+=each);for(let i=mod;i<each&&inpos<size;i++)this._relocateBucket(outpos,inpos),inpos++,pos++;outpos++}this.indexStart>>=by,this.indexEnd>>=by,this.indexBase=this.indexStart}clone(){return new Buckets(this.backing.clone(),this.indexBase,this.indexStart,this.indexEnd)}_rotate(){let bias=this.indexBase-this.indexStart;bias!==0&&(bias>0?(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,bias),this.backing.reverse(bias,this.backing.length)):(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,this.backing.length+bias)),this.indexBase=this.indexStart)}_relocateBucket(dest,src){dest!==src&&this.incrementBucket(dest,this.backing.emptyBucket(src))}};var BucketsBacking=class BucketsBacking{_counts;constructor(_counts=[0]){this._counts=_counts}get length(){return this._counts.length}countAt(pos){return this._counts[pos]}growTo(newSize,oldPositiveLimit,newPositiveLimit){let tmp=Array(newSize).fill(0);tmp.splice(newPositiveLimit,this._counts.length-oldPositiveLimit,...this._counts.slice(oldPositiveLimit)),tmp.splice(0,oldPositiveLimit,...this._counts.slice(0,oldPositiveLimit)),this._counts=tmp}reverse(from,limit){let num=Math.floor((from+limit)/2)-from;for(let i=0;i<num;i++){let tmp=this._counts[from+i];this._counts[from+i]=this._counts[limit-i-1],this._counts[limit-i-1]=tmp}}emptyBucket(src){let tmp=this._counts[src];return this._counts[src]=0,tmp}increment(bucketIndex,increment){this._counts[bucketIndex]+=increment}decrement(bucketIndex,decrement){this._counts[bucketIndex]>=decrement?this._counts[bucketIndex]-=decrement:this._counts[bucketIndex]=0}clone(){return new BucketsBacking([...this._counts])}}})),require_ieee754=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getSignificand=exports.getNormalBase2=exports.MIN_VALUE=exports.MAX_NORMAL_EXPONENT=exports.MIN_NORMAL_EXPONENT=exports.SIGNIFICAND_WIDTH=void 0,exports.SIGNIFICAND_WIDTH=52;let EXPONENT_MASK=2146435072,SIGNIFICAND_MASK=1048575,EXPONENT_BIAS=1023;exports.MIN_NORMAL_EXPONENT=-EXPONENT_BIAS+1,exports.MAX_NORMAL_EXPONENT=EXPONENT_BIAS,exports.MIN_VALUE=2**-1022;function getNormalBase2(value){let dv=new DataView(new ArrayBuffer(8));return dv.setFloat64(0,value),((dv.getUint32(0)&2146435072)>>20)-EXPONENT_BIAS}exports.getNormalBase2=getNormalBase2;function getSignificand(value){let dv=new DataView(new ArrayBuffer(8));dv.setFloat64(0,value);let hiBits=dv.getUint32(0),loBits=dv.getUint32(4);return(hiBits&1048575)*2**32+loBits}exports.getSignificand=getSignificand})),require_util=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.nextGreaterSquare=exports.ldexp=void 0;function ldexp(frac,exp){return frac===0||frac===1/0||frac===-1/0||Number.isNaN(frac)?frac:frac*2**exp}exports.ldexp=ldexp;function nextGreaterSquare(v){return v--,v|=v>>1,v|=v>>2,v|=v>>4,v|=v>>8,v|=v>>16,v++,v}exports.nextGreaterSquare=nextGreaterSquare})),require_types=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MappingError=void 0,exports.MappingError=class extends Error{}})),require_ExponentMapping=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExponentMapping=void 0;let ieee754=require_ieee754(),util=require_util(),types_1=require_types();exports.ExponentMapping=class{_shift;constructor(scale){this._shift=-scale}mapToIndex(value){return value<ieee754.MIN_VALUE?this._minNormalLowerBoundaryIndex():ieee754.getNormalBase2(value)+this._rightShift(ieee754.getSignificand(value)-1,ieee754.SIGNIFICAND_WIDTH)>>this._shift}lowerBoundary(index){let minIndex=this._minNormalLowerBoundaryIndex();if(index<minIndex)throw new types_1.MappingError(`underflow: ${index} is < minimum lower boundary: ${minIndex}`);let maxIndex=this._maxNormalLowerBoundaryIndex();if(index>maxIndex)throw new types_1.MappingError(`overflow: ${index} is > maximum lower boundary: ${maxIndex}`);return util.ldexp(1,index<<this._shift)}get scale(){return this._shift===0?0:-this._shift}_minNormalLowerBoundaryIndex(){let index=ieee754.MIN_NORMAL_EXPONENT>>this._shift;return this._shift<2&&index--,index}_maxNormalLowerBoundaryIndex(){return ieee754.MAX_NORMAL_EXPONENT>>this._shift}_rightShift(value,shift){return Math.floor(value*2**-shift)}}})),require_LogarithmMapping=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LogarithmMapping=void 0;let ieee754=require_ieee754(),util=require_util(),types_1=require_types();exports.LogarithmMapping=class{_scale;_scaleFactor;_inverseFactor;constructor(scale){this._scale=scale,this._scaleFactor=util.ldexp(Math.LOG2E,scale),this._inverseFactor=util.ldexp(Math.LN2,-scale)}mapToIndex(value){if(value<=ieee754.MIN_VALUE)return this._minNormalLowerBoundaryIndex()-1;if(ieee754.getSignificand(value)===0)return(ieee754.getNormalBase2(value)<<this._scale)-1;let index=Math.floor(Math.log(value)*this._scaleFactor),maxIndex=this._maxNormalLowerBoundaryIndex();return index>=maxIndex?maxIndex:index}lowerBoundary(index){let maxIndex=this._maxNormalLowerBoundaryIndex();if(index>=maxIndex){if(index===maxIndex)return 2*Math.exp((index-(1<<this._scale))/this._scaleFactor);throw new types_1.MappingError(`overflow: ${index} is > maximum lower boundary: ${maxIndex}`)}let minIndex=this._minNormalLowerBoundaryIndex();if(index<=minIndex){if(index===minIndex)return ieee754.MIN_VALUE;if(index===minIndex-1)return Math.exp((index+(1<<this._scale))/this._scaleFactor)/2;throw new types_1.MappingError(`overflow: ${index} is < minimum lower boundary: ${minIndex}`)}return Math.exp(index*this._inverseFactor)}get scale(){return this._scale}_minNormalLowerBoundaryIndex(){return ieee754.MIN_NORMAL_EXPONENT<<this._scale}_maxNormalLowerBoundaryIndex(){return(ieee754.MAX_NORMAL_EXPONENT+1<<this._scale)-1}}})),require_getMapping=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getMapping=void 0;let ExponentMapping_1=require_ExponentMapping(),LogarithmMapping_1=require_LogarithmMapping(),types_1=require_types(),MIN_SCALE=-10,MAX_SCALE=20,PREBUILT_MAPPINGS=Array.from({length:31},(_,i)=>i>10?new LogarithmMapping_1.LogarithmMapping(i-10):new ExponentMapping_1.ExponentMapping(i-10));function getMapping(scale){if(scale>20||scale<-10)throw new types_1.MappingError(`expected scale >= -10 && <= 20, got: ${scale}`);return PREBUILT_MAPPINGS[scale+10]}exports.getMapping=getMapping})),require_ExponentialHistogram=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExponentialHistogramAggregator=exports.ExponentialHistogramAccumulation=void 0;let types_1=require_types$1(),MetricData_1=require_MetricData(),api_1$6=__require(`@opentelemetry/api`),Buckets_1=require_Buckets(),getMapping_1=require_getMapping(),util_1=require_util();var HighLow=class HighLow{low;high;static combine(h1,h2){return new HighLow(Math.min(h1.low,h2.low),Math.max(h1.high,h2.high))}constructor(low,high){this.low=low,this.high=high}};let MAX_SCALE=20,DEFAULT_MAX_SIZE=160,MIN_MAX_SIZE=2;var ExponentialHistogramAccumulation=class ExponentialHistogramAccumulation{startTime;_maxSize;_recordMinMax;_sum;_count;_zeroCount;_min;_max;_positive;_negative;_mapping;constructor(startTime,_maxSize=160,_recordMinMax=!0,_sum=0,_count=0,_zeroCount=0,_min=1/0,_max=-1/0,_positive=new Buckets_1.Buckets,_negative=new Buckets_1.Buckets,_mapping=(0,getMapping_1.getMapping)(20)){this.startTime=startTime,this._maxSize=_maxSize,this._recordMinMax=_recordMinMax,this._sum=_sum,this._count=_count,this._zeroCount=_zeroCount,this._min=_min,this._max=_max,this._positive=_positive,this._negative=_negative,this._mapping=_mapping,this._maxSize<2&&(api_1$6.diag.warn(`Exponential Histogram Max Size set to ${this._maxSize}, \
|
|
135
135
|
changing to the minimum size of: 2`),this._maxSize=2)}record(value){this.updateByIncrement(value,1)}setStartTime(startTime){this.startTime=startTime}toPointValue(){return{hasMinMax:this._recordMinMax,min:this.min,max:this.max,sum:this.sum,positive:{offset:this.positive.offset,bucketCounts:this.positive.counts()},negative:{offset:this.negative.offset,bucketCounts:this.negative.counts()},count:this.count,scale:this.scale,zeroCount:this.zeroCount}}get sum(){return this._sum}get min(){return this._min}get max(){return this._max}get count(){return this._count}get zeroCount(){return this._zeroCount}get scale(){return this._count===this._zeroCount?0:this._mapping.scale}get positive(){return this._positive}get negative(){return this._negative}updateByIncrement(value,increment){if(!Number.isNaN(value)){if(value>this._max&&(this._max=value),value<this._min&&(this._min=value),this._count+=increment,value===0){this._zeroCount+=increment;return}this._sum+=value*increment,value>0?this._updateBuckets(this._positive,value,increment):this._updateBuckets(this._negative,-value,increment)}}merge(previous){this._count===0?(this._min=previous.min,this._max=previous.max):previous.count!==0&&(previous.min<this.min&&(this._min=previous.min),previous.max>this.max&&(this._max=previous.max)),this.startTime=previous.startTime,this._sum+=previous.sum,this._count+=previous.count,this._zeroCount+=previous.zeroCount;let minScale=this._minScale(previous);this._downscale(this.scale-minScale),this._mergeBuckets(this.positive,previous,previous.positive,minScale),this._mergeBuckets(this.negative,previous,previous.negative,minScale)}diff(other){this._min=1/0,this._max=-1/0,this._sum-=other.sum,this._count-=other.count,this._zeroCount-=other.zeroCount;let minScale=this._minScale(other);this._downscale(this.scale-minScale),this._diffBuckets(this.positive,other,other.positive,minScale),this._diffBuckets(this.negative,other,other.negative,minScale)}clone(){return new ExponentialHistogramAccumulation(this.startTime,this._maxSize,this._recordMinMax,this._sum,this._count,this._zeroCount,this._min,this._max,this.positive.clone(),this.negative.clone(),this._mapping)}_updateBuckets(buckets,value,increment){let index=this._mapping.mapToIndex(value),rescalingNeeded=!1,high=0,low=0;if(buckets.length===0?(buckets.indexStart=index,buckets.indexEnd=buckets.indexStart,buckets.indexBase=buckets.indexStart):index<buckets.indexStart&&buckets.indexEnd-index>=this._maxSize?(rescalingNeeded=!0,low=index,high=buckets.indexEnd):index>buckets.indexEnd&&index-buckets.indexStart>=this._maxSize&&(rescalingNeeded=!0,low=buckets.indexStart,high=index),rescalingNeeded){let change=this._changeScale(high,low);this._downscale(change),index=this._mapping.mapToIndex(value)}this._incrementIndexBy(buckets,index,increment)}_incrementIndexBy(buckets,index,increment){if(increment===0)return;if(buckets.length===0&&(buckets.indexStart=buckets.indexEnd=buckets.indexBase=index),index<buckets.indexStart){let span=buckets.indexEnd-index;span>=buckets.backing.length&&this._grow(buckets,span+1),buckets.indexStart=index}else if(index>buckets.indexEnd){let span=index-buckets.indexStart;span>=buckets.backing.length&&this._grow(buckets,span+1),buckets.indexEnd=index}let bucketIndex=index-buckets.indexBase;bucketIndex<0&&(bucketIndex+=buckets.backing.length),buckets.incrementBucket(bucketIndex,increment)}_grow(buckets,needed){let size=buckets.backing.length,bias=buckets.indexBase-buckets.indexStart,oldPositiveLimit=size-bias,newSize=(0,util_1.nextGreaterSquare)(needed);newSize>this._maxSize&&(newSize=this._maxSize);let newPositiveLimit=newSize-bias;buckets.backing.growTo(newSize,oldPositiveLimit,newPositiveLimit)}_changeScale(high,low){let change=0;for(;high-low>=this._maxSize;)high>>=1,low>>=1,change++;return change}_downscale(change){if(change===0)return;if(change<0)throw Error(`impossible change of scale: ${this.scale}`);let newScale=this._mapping.scale-change;this._positive.downscale(change),this._negative.downscale(change),this._mapping=(0,getMapping_1.getMapping)(newScale)}_minScale(other){let minScale=Math.min(this.scale,other.scale),highLowPos=HighLow.combine(this._highLowAtScale(this.positive,this.scale,minScale),this._highLowAtScale(other.positive,other.scale,minScale)),highLowNeg=HighLow.combine(this._highLowAtScale(this.negative,this.scale,minScale),this._highLowAtScale(other.negative,other.scale,minScale));return Math.min(minScale-this._changeScale(highLowPos.high,highLowPos.low),minScale-this._changeScale(highLowNeg.high,highLowNeg.low))}_highLowAtScale(buckets,currentScale,newScale){if(buckets.length===0)return new HighLow(0,-1);let shift=currentScale-newScale;return new HighLow(buckets.indexStart>>shift,buckets.indexEnd>>shift)}_mergeBuckets(ours,other,theirs,scale){let theirOffset=theirs.offset,theirChange=other.scale-scale;for(let i=0;i<theirs.length;i++)this._incrementIndexBy(ours,theirOffset+i>>theirChange,theirs.at(i))}_diffBuckets(ours,other,theirs,scale){let theirOffset=theirs.offset,theirChange=other.scale-scale;for(let i=0;i<theirs.length;i++){let bucketIndex=(theirOffset+i>>theirChange)-ours.indexBase;bucketIndex<0&&(bucketIndex+=ours.backing.length),ours.decrementBucket(bucketIndex,theirs.at(i))}ours.trim()}};exports.ExponentialHistogramAccumulation=ExponentialHistogramAccumulation,exports.ExponentialHistogramAggregator=class{_maxSize;_recordMinMax;kind=types_1.AggregatorKind.EXPONENTIAL_HISTOGRAM;constructor(_maxSize,_recordMinMax){this._maxSize=_maxSize,this._recordMinMax=_recordMinMax}createAccumulation(startTime){return new ExponentialHistogramAccumulation(startTime,this._maxSize,this._recordMinMax)}merge(previous,delta){let result=delta.clone();return result.merge(previous),result}diff(previous,current){let result=current.clone();return result.diff(previous),result}toMetricData(descriptor,aggregationTemporality,accumulationByAttributes,endTime){return{descriptor,aggregationTemporality,dataPointType:MetricData_1.DataPointType.EXPONENTIAL_HISTOGRAM,dataPoints:accumulationByAttributes.map(([attributes,accumulation])=>{let pointValue=accumulation.toPointValue(),allowsNegativeValues=descriptor.type===MetricData_1.InstrumentType.GAUGE||descriptor.type===MetricData_1.InstrumentType.UP_DOWN_COUNTER||descriptor.type===MetricData_1.InstrumentType.OBSERVABLE_GAUGE||descriptor.type===MetricData_1.InstrumentType.OBSERVABLE_UP_DOWN_COUNTER;return{attributes,startTime:accumulation.startTime,endTime,value:{min:pointValue.hasMinMax?pointValue.min:void 0,max:pointValue.hasMinMax?pointValue.max:void 0,sum:allowsNegativeValues?void 0:pointValue.sum,positive:{offset:pointValue.positive.offset,bucketCounts:pointValue.positive.bucketCounts},negative:{offset:pointValue.negative.offset,bucketCounts:pointValue.negative.bucketCounts},count:pointValue.count,scale:pointValue.scale,zeroCount:pointValue.zeroCount}}})}}}})),require_LastValue=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.LastValueAggregator=exports.LastValueAccumulation=void 0;let types_1=require_types$1(),core_1=require_src$8(),MetricData_1=require_MetricData();var LastValueAccumulation=class{startTime;_current;sampleTime;constructor(startTime,_current=0,sampleTime=[0,0]){this.startTime=startTime,this._current=_current,this.sampleTime=sampleTime}record(value){this._current=value,this.sampleTime=(0,core_1.millisToHrTime)(Date.now())}setStartTime(startTime){this.startTime=startTime}toPointValue(){return this._current}};exports.LastValueAccumulation=LastValueAccumulation,exports.LastValueAggregator=class{kind=types_1.AggregatorKind.LAST_VALUE;createAccumulation(startTime){return new LastValueAccumulation(startTime)}merge(previous,delta){let latestAccumulation=(0,core_1.hrTimeToMicroseconds)(delta.sampleTime)>=(0,core_1.hrTimeToMicroseconds)(previous.sampleTime)?delta:previous;return new LastValueAccumulation(previous.startTime,latestAccumulation.toPointValue(),latestAccumulation.sampleTime)}diff(previous,current){let latestAccumulation=(0,core_1.hrTimeToMicroseconds)(current.sampleTime)>=(0,core_1.hrTimeToMicroseconds)(previous.sampleTime)?current:previous;return new LastValueAccumulation(current.startTime,latestAccumulation.toPointValue(),latestAccumulation.sampleTime)}toMetricData(descriptor,aggregationTemporality,accumulationByAttributes,endTime){return{descriptor,aggregationTemporality,dataPointType:MetricData_1.DataPointType.GAUGE,dataPoints:accumulationByAttributes.map(([attributes,accumulation])=>({attributes,startTime:accumulation.startTime,endTime,value:accumulation.toPointValue()}))}}}})),require_Sum=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SumAggregator=exports.SumAccumulation=void 0;let types_1=require_types$1(),MetricData_1=require_MetricData();var SumAccumulation=class{startTime;monotonic;_current;reset;constructor(startTime,monotonic,_current=0,reset=!1){this.startTime=startTime,this.monotonic=monotonic,this._current=_current,this.reset=reset}record(value){this.monotonic&&value<0||(this._current+=value)}setStartTime(startTime){this.startTime=startTime}toPointValue(){return this._current}};exports.SumAccumulation=SumAccumulation,exports.SumAggregator=class{monotonic;kind=types_1.AggregatorKind.SUM;constructor(monotonic){this.monotonic=monotonic}createAccumulation(startTime){return new SumAccumulation(startTime,this.monotonic)}merge(previous,delta){let prevPv=previous.toPointValue(),deltaPv=delta.toPointValue();return delta.reset?new SumAccumulation(delta.startTime,this.monotonic,deltaPv,delta.reset):new SumAccumulation(previous.startTime,this.monotonic,prevPv+deltaPv)}diff(previous,current){let prevPv=previous.toPointValue(),currPv=current.toPointValue();return this.monotonic&&prevPv>currPv?new SumAccumulation(current.startTime,this.monotonic,currPv,!0):new SumAccumulation(current.startTime,this.monotonic,currPv-prevPv)}toMetricData(descriptor,aggregationTemporality,accumulationByAttributes,endTime){return{descriptor,aggregationTemporality,dataPointType:MetricData_1.DataPointType.SUM,dataPoints:accumulationByAttributes.map(([attributes,accumulation])=>({attributes,startTime:accumulation.startTime,endTime,value:accumulation.toPointValue()})),isMonotonic:this.monotonic}}}})),require_aggregator=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SumAggregator=exports.SumAccumulation=exports.LastValueAggregator=exports.LastValueAccumulation=exports.ExponentialHistogramAggregator=exports.ExponentialHistogramAccumulation=exports.HistogramAggregator=exports.HistogramAccumulation=exports.DropAggregator=void 0;var Drop_1=require_Drop();Object.defineProperty(exports,`DropAggregator`,{enumerable:!0,get:function(){return Drop_1.DropAggregator}});var Histogram_1=require_Histogram();Object.defineProperty(exports,`HistogramAccumulation`,{enumerable:!0,get:function(){return Histogram_1.HistogramAccumulation}}),Object.defineProperty(exports,`HistogramAggregator`,{enumerable:!0,get:function(){return Histogram_1.HistogramAggregator}});var ExponentialHistogram_1=require_ExponentialHistogram();Object.defineProperty(exports,`ExponentialHistogramAccumulation`,{enumerable:!0,get:function(){return ExponentialHistogram_1.ExponentialHistogramAccumulation}}),Object.defineProperty(exports,`ExponentialHistogramAggregator`,{enumerable:!0,get:function(){return ExponentialHistogram_1.ExponentialHistogramAggregator}});var LastValue_1=require_LastValue();Object.defineProperty(exports,`LastValueAccumulation`,{enumerable:!0,get:function(){return LastValue_1.LastValueAccumulation}}),Object.defineProperty(exports,`LastValueAggregator`,{enumerable:!0,get:function(){return LastValue_1.LastValueAggregator}});var Sum_1=require_Sum();Object.defineProperty(exports,`SumAccumulation`,{enumerable:!0,get:function(){return Sum_1.SumAccumulation}}),Object.defineProperty(exports,`SumAggregator`,{enumerable:!0,get:function(){return Sum_1.SumAggregator}})})),require_Aggregation=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DEFAULT_AGGREGATION=exports.EXPONENTIAL_HISTOGRAM_AGGREGATION=exports.HISTOGRAM_AGGREGATION=exports.LAST_VALUE_AGGREGATION=exports.SUM_AGGREGATION=exports.DROP_AGGREGATION=exports.DefaultAggregation=exports.ExponentialHistogramAggregation=exports.ExplicitBucketHistogramAggregation=exports.HistogramAggregation=exports.LastValueAggregation=exports.SumAggregation=exports.DropAggregation=void 0;let api$3=__require(`@opentelemetry/api`),aggregator_1=require_aggregator(),MetricData_1=require_MetricData();var DropAggregation=class DropAggregation{static DEFAULT_INSTANCE=new aggregator_1.DropAggregator;createAggregator(_instrument){return DropAggregation.DEFAULT_INSTANCE}};exports.DropAggregation=DropAggregation;var SumAggregation=class SumAggregation{static MONOTONIC_INSTANCE=new aggregator_1.SumAggregator(!0);static NON_MONOTONIC_INSTANCE=new aggregator_1.SumAggregator(!1);createAggregator(instrument){switch(instrument.type){case MetricData_1.InstrumentType.COUNTER:case MetricData_1.InstrumentType.OBSERVABLE_COUNTER:case MetricData_1.InstrumentType.HISTOGRAM:return SumAggregation.MONOTONIC_INSTANCE;default:return SumAggregation.NON_MONOTONIC_INSTANCE}}};exports.SumAggregation=SumAggregation;var LastValueAggregation=class LastValueAggregation{static DEFAULT_INSTANCE=new aggregator_1.LastValueAggregator;createAggregator(_instrument){return LastValueAggregation.DEFAULT_INSTANCE}};exports.LastValueAggregation=LastValueAggregation;var HistogramAggregation=class HistogramAggregation{static DEFAULT_INSTANCE=new aggregator_1.HistogramAggregator([0,5,10,25,50,75,100,250,500,750,1e3,2500,5e3,7500,1e4],!0);createAggregator(_instrument){return HistogramAggregation.DEFAULT_INSTANCE}};exports.HistogramAggregation=HistogramAggregation;var ExplicitBucketHistogramAggregation=class{_recordMinMax;_boundaries;constructor(boundaries,_recordMinMax=!0){if(this._recordMinMax=_recordMinMax,boundaries==null)throw Error(`ExplicitBucketHistogramAggregation should be created with explicit boundaries, if a single bucket histogram is required, please pass an empty array`);boundaries=boundaries.concat(),boundaries=boundaries.sort((a,b)=>a-b);let minusInfinityIndex=boundaries.lastIndexOf(-1/0),infinityIndex=boundaries.indexOf(1/0);infinityIndex===-1&&(infinityIndex=void 0),this._boundaries=boundaries.slice(minusInfinityIndex+1,infinityIndex)}createAggregator(_instrument){return new aggregator_1.HistogramAggregator(this._boundaries,this._recordMinMax)}};exports.ExplicitBucketHistogramAggregation=ExplicitBucketHistogramAggregation;var ExponentialHistogramAggregation=class{_maxSize;_recordMinMax;constructor(_maxSize=160,_recordMinMax=!0){this._maxSize=_maxSize,this._recordMinMax=_recordMinMax}createAggregator(_instrument){return new aggregator_1.ExponentialHistogramAggregator(this._maxSize,this._recordMinMax)}};exports.ExponentialHistogramAggregation=ExponentialHistogramAggregation;var DefaultAggregation=class{_resolve(instrument){switch(instrument.type){case MetricData_1.InstrumentType.COUNTER:case MetricData_1.InstrumentType.UP_DOWN_COUNTER:case MetricData_1.InstrumentType.OBSERVABLE_COUNTER:case MetricData_1.InstrumentType.OBSERVABLE_UP_DOWN_COUNTER:return exports.SUM_AGGREGATION;case MetricData_1.InstrumentType.GAUGE:case MetricData_1.InstrumentType.OBSERVABLE_GAUGE:return exports.LAST_VALUE_AGGREGATION;case MetricData_1.InstrumentType.HISTOGRAM:return instrument.advice.explicitBucketBoundaries?new ExplicitBucketHistogramAggregation(instrument.advice.explicitBucketBoundaries):exports.HISTOGRAM_AGGREGATION}return api$3.diag.warn(`Unable to recognize instrument type: ${instrument.type}`),exports.DROP_AGGREGATION}createAggregator(instrument){return this._resolve(instrument).createAggregator(instrument)}};exports.DefaultAggregation=DefaultAggregation,exports.DROP_AGGREGATION=new DropAggregation,exports.SUM_AGGREGATION=new SumAggregation,exports.LAST_VALUE_AGGREGATION=new LastValueAggregation,exports.HISTOGRAM_AGGREGATION=new HistogramAggregation,exports.EXPONENTIAL_HISTOGRAM_AGGREGATION=new ExponentialHistogramAggregation,exports.DEFAULT_AGGREGATION=new DefaultAggregation})),require_AggregationOption=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.toAggregation=exports.AggregationType=void 0;let Aggregation_1=require_Aggregation();var AggregationType;(function(AggregationType){AggregationType[AggregationType.DEFAULT=0]=`DEFAULT`,AggregationType[AggregationType.DROP=1]=`DROP`,AggregationType[AggregationType.SUM=2]=`SUM`,AggregationType[AggregationType.LAST_VALUE=3]=`LAST_VALUE`,AggregationType[AggregationType.EXPLICIT_BUCKET_HISTOGRAM=4]=`EXPLICIT_BUCKET_HISTOGRAM`,AggregationType[AggregationType.EXPONENTIAL_HISTOGRAM=5]=`EXPONENTIAL_HISTOGRAM`})(AggregationType=exports.AggregationType||={});function toAggregation(option){switch(option.type){case AggregationType.DEFAULT:return Aggregation_1.DEFAULT_AGGREGATION;case AggregationType.DROP:return Aggregation_1.DROP_AGGREGATION;case AggregationType.SUM:return Aggregation_1.SUM_AGGREGATION;case AggregationType.LAST_VALUE:return Aggregation_1.LAST_VALUE_AGGREGATION;case AggregationType.EXPONENTIAL_HISTOGRAM:{let expOption=option;return new Aggregation_1.ExponentialHistogramAggregation(expOption.options?.maxSize,expOption.options?.recordMinMax)}case AggregationType.EXPLICIT_BUCKET_HISTOGRAM:{let expOption=option;return expOption.options==null?Aggregation_1.HISTOGRAM_AGGREGATION:new Aggregation_1.ExplicitBucketHistogramAggregation(expOption.options?.boundaries,expOption.options?.recordMinMax)}default:throw Error(`Unsupported Aggregation`)}}exports.toAggregation=toAggregation})),require_AggregationSelector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR=exports.DEFAULT_AGGREGATION_SELECTOR=void 0;let AggregationTemporality_1=require_AggregationTemporality(),AggregationOption_1=require_AggregationOption();exports.DEFAULT_AGGREGATION_SELECTOR=_instrumentType=>({type:AggregationOption_1.AggregationType.DEFAULT}),exports.DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR=_instrumentType=>AggregationTemporality_1.AggregationTemporality.CUMULATIVE})),require_MetricReader=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MetricReader=void 0;let api$2=__require(`@opentelemetry/api`),utils_1=require_utils(),AggregationSelector_1=require_AggregationSelector();exports.MetricReader=class{_shutdown=!1;_metricProducers;_sdkMetricProducer;_aggregationTemporalitySelector;_aggregationSelector;_cardinalitySelector;constructor(options){this._aggregationSelector=options?.aggregationSelector??AggregationSelector_1.DEFAULT_AGGREGATION_SELECTOR,this._aggregationTemporalitySelector=options?.aggregationTemporalitySelector??AggregationSelector_1.DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR,this._metricProducers=options?.metricProducers??[],this._cardinalitySelector=options?.cardinalitySelector}setMetricProducer(metricProducer){if(this._sdkMetricProducer)throw Error(`MetricReader can not be bound to a MeterProvider again.`);this._sdkMetricProducer=metricProducer,this.onInitialized()}selectAggregation(instrumentType){return this._aggregationSelector(instrumentType)}selectAggregationTemporality(instrumentType){return this._aggregationTemporalitySelector(instrumentType)}selectCardinalityLimit(instrumentType){return this._cardinalitySelector?this._cardinalitySelector(instrumentType):2e3}onInitialized(){}async collect(options){if(this._sdkMetricProducer===void 0)throw Error(`MetricReader is not bound to a MetricProducer`);if(this._shutdown)throw Error(`MetricReader is shutdown`);let[sdkCollectionResults,...additionalCollectionResults]=await Promise.all([this._sdkMetricProducer.collect({timeoutMillis:options?.timeoutMillis}),...this._metricProducers.map(producer=>producer.collect({timeoutMillis:options?.timeoutMillis}))]),errors=sdkCollectionResults.errors.concat((0,utils_1.FlatMap)(additionalCollectionResults,result=>result.errors));return{resourceMetrics:{resource:sdkCollectionResults.resourceMetrics.resource,scopeMetrics:sdkCollectionResults.resourceMetrics.scopeMetrics.concat((0,utils_1.FlatMap)(additionalCollectionResults,result=>result.resourceMetrics.scopeMetrics))},errors}}async shutdown(options){if(this._shutdown){api$2.diag.error(`Cannot call shutdown twice.`);return}options?.timeoutMillis==null?await this.onShutdown():await(0,utils_1.callWithTimeout)(this.onShutdown(),options.timeoutMillis),this._shutdown=!0}async forceFlush(options){if(this._shutdown){api$2.diag.warn(`Cannot forceFlush on already shutdown MetricReader.`);return}if(options?.timeoutMillis==null){await this.onForceFlush();return}await(0,utils_1.callWithTimeout)(this.onForceFlush(),options.timeoutMillis)}}})),require_PeriodicExportingMetricReader=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PeriodicExportingMetricReader=void 0;let api$1=__require(`@opentelemetry/api`),core_1=require_src$8(),MetricReader_1=require_MetricReader(),utils_1=require_utils();exports.PeriodicExportingMetricReader=class extends MetricReader_1.MetricReader{_interval;_exporter;_exportInterval;_exportTimeout;constructor(options){if(super({aggregationSelector:options.exporter.selectAggregation?.bind(options.exporter),aggregationTemporalitySelector:options.exporter.selectAggregationTemporality?.bind(options.exporter),metricProducers:options.metricProducers}),options.exportIntervalMillis!==void 0&&options.exportIntervalMillis<=0)throw Error(`exportIntervalMillis must be greater than 0`);if(options.exportTimeoutMillis!==void 0&&options.exportTimeoutMillis<=0)throw Error(`exportTimeoutMillis must be greater than 0`);if(options.exportTimeoutMillis!==void 0&&options.exportIntervalMillis!==void 0&&options.exportIntervalMillis<options.exportTimeoutMillis)throw Error(`exportIntervalMillis must be greater than or equal to exportTimeoutMillis`);this._exportInterval=options.exportIntervalMillis??6e4,this._exportTimeout=options.exportTimeoutMillis??3e4,this._exporter=options.exporter}async _runOnce(){try{await(0,utils_1.callWithTimeout)(this._doRun(),this._exportTimeout)}catch(err){if(err instanceof utils_1.TimeoutError){api$1.diag.error(`Export took longer than %s milliseconds and timed out.`,this._exportTimeout);return}(0,core_1.globalErrorHandler)(err)}}async _doRun(){let{resourceMetrics,errors}=await this.collect({timeoutMillis:this._exportTimeout});if(errors.length>0&&api$1.diag.error(`PeriodicExportingMetricReader: metrics collection errors`,...errors),resourceMetrics.resource.asyncAttributesPending)try{await resourceMetrics.resource.waitForAsyncAttributes?.()}catch(e){api$1.diag.debug(`Error while resolving async portion of resource: `,e),(0,core_1.globalErrorHandler)(e)}if(resourceMetrics.scopeMetrics.length===0)return;let result=await core_1.internal._export(this._exporter,resourceMetrics);if(result.code!==core_1.ExportResultCode.SUCCESS)throw Error(`PeriodicExportingMetricReader: metrics export failed (error ${result.error})`)}onInitialized(){this._interval=setInterval(()=>{this._runOnce()},this._exportInterval),typeof this._interval!=`number`&&this._interval.unref()}async onForceFlush(){await this._runOnce(),await this._exporter.forceFlush()}async onShutdown(){this._interval&&clearInterval(this._interval),await this.onForceFlush(),await this._exporter.shutdown()}}})),require_InMemoryMetricExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.InMemoryMetricExporter=void 0;let core_1=require_src$8();exports.InMemoryMetricExporter=class{_shutdown=!1;_aggregationTemporality;_metrics=[];constructor(aggregationTemporality){this._aggregationTemporality=aggregationTemporality}export(metrics,resultCallback){if(this._shutdown){setTimeout(()=>resultCallback({code:core_1.ExportResultCode.FAILED}),0);return}this._metrics.push(metrics),setTimeout(()=>resultCallback({code:core_1.ExportResultCode.SUCCESS}),0)}getMetrics(){return this._metrics}forceFlush(){return Promise.resolve()}reset(){this._metrics=[]}selectAggregationTemporality(_instrumentType){return this._aggregationTemporality}shutdown(){return this._shutdown=!0,Promise.resolve()}}})),require_ConsoleMetricExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ConsoleMetricExporter=void 0;let core_1=require_src$8(),AggregationSelector_1=require_AggregationSelector();exports.ConsoleMetricExporter=class ConsoleMetricExporter{_shutdown=!1;_temporalitySelector;constructor(options){this._temporalitySelector=options?.temporalitySelector??AggregationSelector_1.DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR}export(metrics,resultCallback){if(this._shutdown){setImmediate(resultCallback,{code:core_1.ExportResultCode.FAILED});return}return ConsoleMetricExporter._sendMetrics(metrics,resultCallback)}forceFlush(){return Promise.resolve()}selectAggregationTemporality(_instrumentType){return this._temporalitySelector(_instrumentType)}shutdown(){return this._shutdown=!0,Promise.resolve()}static _sendMetrics(metrics,done){for(let scopeMetrics of metrics.scopeMetrics)for(let metric of scopeMetrics.metrics)console.dir({descriptor:metric.descriptor,dataPointType:metric.dataPointType,dataPoints:metric.dataPoints},{depth:null});done({code:core_1.ExportResultCode.SUCCESS})}}})),require_ViewRegistry=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ViewRegistry=void 0,exports.ViewRegistry=class{_registeredViews=[];addView(view){this._registeredViews.push(view)}findViews(instrument,meter){return this._registeredViews.filter(registeredView=>this._matchInstrument(registeredView.instrumentSelector,instrument)&&this._matchMeter(registeredView.meterSelector,meter))}_matchInstrument(selector,instrument){return(selector.getType()===void 0||instrument.type===selector.getType())&&selector.getNameFilter().match(instrument.name)&&selector.getUnitFilter().match(instrument.unit)}_matchMeter(selector,meter){return selector.getNameFilter().match(meter.name)&&(meter.version===void 0||selector.getVersionFilter().match(meter.version))&&(meter.schemaUrl===void 0||selector.getSchemaUrlFilter().match(meter.schemaUrl))}}})),require_InstrumentDescriptor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isValidName=exports.isDescriptorCompatibleWith=exports.createInstrumentDescriptorWithView=exports.createInstrumentDescriptor=void 0;let api_1$5=__require(`@opentelemetry/api`),utils_1=require_utils();function createInstrumentDescriptor(name,type,options){return isValidName(name)||api_1$5.diag.warn(`Invalid metric name: "${name}". The metric name should be a ASCII string with a length no greater than 255 characters.`),{name,type,description:options?.description??``,unit:options?.unit??``,valueType:options?.valueType??api_1$5.ValueType.DOUBLE,advice:options?.advice??{}}}exports.createInstrumentDescriptor=createInstrumentDescriptor;function createInstrumentDescriptorWithView(view,instrument){return{name:view.name??instrument.name,description:view.description??instrument.description,type:instrument.type,unit:instrument.unit,valueType:instrument.valueType,advice:instrument.advice}}exports.createInstrumentDescriptorWithView=createInstrumentDescriptorWithView;function isDescriptorCompatibleWith(descriptor,otherDescriptor){return(0,utils_1.equalsCaseInsensitive)(descriptor.name,otherDescriptor.name)&&descriptor.unit===otherDescriptor.unit&&descriptor.type===otherDescriptor.type&&descriptor.valueType===otherDescriptor.valueType}exports.isDescriptorCompatibleWith=isDescriptorCompatibleWith;let NAME_REGEXP=/^[a-z][a-z0-9_.\-/]{0,254}$/i;function isValidName(name){return name.match(NAME_REGEXP)!=null}exports.isValidName=isValidName})),require_Instruments=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isObservableInstrument=exports.ObservableUpDownCounterInstrument=exports.ObservableGaugeInstrument=exports.ObservableCounterInstrument=exports.ObservableInstrument=exports.HistogramInstrument=exports.GaugeInstrument=exports.CounterInstrument=exports.UpDownCounterInstrument=exports.SyncInstrument=void 0;let api_1$4=__require(`@opentelemetry/api`),core_1=require_src$8();var SyncInstrument=class{_writableMetricStorage;_descriptor;constructor(_writableMetricStorage,_descriptor){this._writableMetricStorage=_writableMetricStorage,this._descriptor=_descriptor}_record(value,attributes={},context$1=api_1$4.context.active()){if(typeof value!=`number`){api_1$4.diag.warn(`non-number value provided to metric ${this._descriptor.name}: ${value}`);return}this._descriptor.valueType===api_1$4.ValueType.INT&&!Number.isInteger(value)&&(api_1$4.diag.warn(`INT value type cannot accept a floating-point value for ${this._descriptor.name}, ignoring the fractional digits.`),value=Math.trunc(value),!Number.isInteger(value))||this._writableMetricStorage.record(value,attributes,context$1,(0,core_1.millisToHrTime)(Date.now()))}};exports.SyncInstrument=SyncInstrument,exports.UpDownCounterInstrument=class extends SyncInstrument{add(value,attributes,ctx){this._record(value,attributes,ctx)}},exports.CounterInstrument=class extends SyncInstrument{add(value,attributes,ctx){if(value<0){api_1$4.diag.warn(`negative value provided to counter ${this._descriptor.name}: ${value}`);return}this._record(value,attributes,ctx)}},exports.GaugeInstrument=class extends SyncInstrument{record(value,attributes,ctx){this._record(value,attributes,ctx)}},exports.HistogramInstrument=class extends SyncInstrument{record(value,attributes,ctx){if(value<0){api_1$4.diag.warn(`negative value provided to histogram ${this._descriptor.name}: ${value}`);return}this._record(value,attributes,ctx)}};var ObservableInstrument=class{_observableRegistry;_metricStorages;_descriptor;constructor(descriptor,metricStorages,_observableRegistry){this._observableRegistry=_observableRegistry,this._descriptor=descriptor,this._metricStorages=metricStorages}addCallback(callback){this._observableRegistry.addCallback(callback,this)}removeCallback(callback){this._observableRegistry.removeCallback(callback,this)}};exports.ObservableInstrument=ObservableInstrument,exports.ObservableCounterInstrument=class extends ObservableInstrument{},exports.ObservableGaugeInstrument=class extends ObservableInstrument{},exports.ObservableUpDownCounterInstrument=class extends ObservableInstrument{};function isObservableInstrument(it){return it instanceof ObservableInstrument}exports.isObservableInstrument=isObservableInstrument})),require_Meter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.Meter=void 0;let InstrumentDescriptor_1=require_InstrumentDescriptor(),Instruments_1=require_Instruments(),MetricData_1=require_MetricData();exports.Meter=class{_meterSharedState;constructor(_meterSharedState){this._meterSharedState=_meterSharedState}createGauge(name,options){let descriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(name,MetricData_1.InstrumentType.GAUGE,options),storage=this._meterSharedState.registerMetricStorage(descriptor);return new Instruments_1.GaugeInstrument(storage,descriptor)}createHistogram(name,options){let descriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(name,MetricData_1.InstrumentType.HISTOGRAM,options),storage=this._meterSharedState.registerMetricStorage(descriptor);return new Instruments_1.HistogramInstrument(storage,descriptor)}createCounter(name,options){let descriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(name,MetricData_1.InstrumentType.COUNTER,options),storage=this._meterSharedState.registerMetricStorage(descriptor);return new Instruments_1.CounterInstrument(storage,descriptor)}createUpDownCounter(name,options){let descriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(name,MetricData_1.InstrumentType.UP_DOWN_COUNTER,options),storage=this._meterSharedState.registerMetricStorage(descriptor);return new Instruments_1.UpDownCounterInstrument(storage,descriptor)}createObservableGauge(name,options){let descriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(name,MetricData_1.InstrumentType.OBSERVABLE_GAUGE,options),storages=this._meterSharedState.registerAsyncMetricStorage(descriptor);return new Instruments_1.ObservableGaugeInstrument(descriptor,storages,this._meterSharedState.observableRegistry)}createObservableCounter(name,options){let descriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(name,MetricData_1.InstrumentType.OBSERVABLE_COUNTER,options),storages=this._meterSharedState.registerAsyncMetricStorage(descriptor);return new Instruments_1.ObservableCounterInstrument(descriptor,storages,this._meterSharedState.observableRegistry)}createObservableUpDownCounter(name,options){let descriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(name,MetricData_1.InstrumentType.OBSERVABLE_UP_DOWN_COUNTER,options),storages=this._meterSharedState.registerAsyncMetricStorage(descriptor);return new Instruments_1.ObservableUpDownCounterInstrument(descriptor,storages,this._meterSharedState.observableRegistry)}addBatchObservableCallback(callback,observables){this._meterSharedState.observableRegistry.addBatchCallback(callback,observables)}removeBatchObservableCallback(callback,observables){this._meterSharedState.observableRegistry.removeBatchCallback(callback,observables)}}})),require_MetricStorage=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MetricStorage=void 0;let InstrumentDescriptor_1=require_InstrumentDescriptor();exports.MetricStorage=class{_instrumentDescriptor;constructor(_instrumentDescriptor){this._instrumentDescriptor=_instrumentDescriptor}getInstrumentDescriptor(){return this._instrumentDescriptor}updateDescription(description){this._instrumentDescriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptor)(this._instrumentDescriptor.name,this._instrumentDescriptor.type,{description,valueType:this._instrumentDescriptor.valueType,unit:this._instrumentDescriptor.unit,advice:this._instrumentDescriptor.advice})}}})),require_HashMap=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AttributeHashMap=exports.HashMap=void 0;let utils_1=require_utils();var HashMap=class{_hash;_valueMap=new Map;_keyMap=new Map;constructor(_hash){this._hash=_hash}get(key,hashCode){return hashCode??=this._hash(key),this._valueMap.get(hashCode)}getOrDefault(key,defaultFactory){let hash=this._hash(key);if(this._valueMap.has(hash))return this._valueMap.get(hash);let val=defaultFactory();return this._keyMap.has(hash)||this._keyMap.set(hash,key),this._valueMap.set(hash,val),val}set(key,value,hashCode){hashCode??=this._hash(key),this._keyMap.has(hashCode)||this._keyMap.set(hashCode,key),this._valueMap.set(hashCode,value)}has(key,hashCode){return hashCode??=this._hash(key),this._valueMap.has(hashCode)}*keys(){let keyIterator=this._keyMap.entries(),next=keyIterator.next();for(;next.done!==!0;)yield[next.value[1],next.value[0]],next=keyIterator.next()}*entries(){let valueIterator=this._valueMap.entries(),next=valueIterator.next();for(;next.done!==!0;)yield[this._keyMap.get(next.value[0]),next.value[1],next.value[0]],next=valueIterator.next()}get size(){return this._valueMap.size}};exports.HashMap=HashMap,exports.AttributeHashMap=class extends HashMap{constructor(){super(utils_1.hashAttributes)}}})),require_DeltaMetricProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DeltaMetricProcessor=void 0;let utils_1=require_utils(),HashMap_1=require_HashMap();exports.DeltaMetricProcessor=class{_aggregator;_activeCollectionStorage=new HashMap_1.AttributeHashMap;_cumulativeMemoStorage=new HashMap_1.AttributeHashMap;_cardinalityLimit;_overflowAttributes={"otel.metric.overflow":!0};_overflowHashCode;constructor(_aggregator,aggregationCardinalityLimit){this._aggregator=_aggregator,this._cardinalityLimit=(aggregationCardinalityLimit??2e3)-1,this._overflowHashCode=(0,utils_1.hashAttributes)(this._overflowAttributes)}record(value,attributes,_context,collectionTime){let accumulation=this._activeCollectionStorage.get(attributes);if(!accumulation){if(this._activeCollectionStorage.size>=this._cardinalityLimit){this._activeCollectionStorage.getOrDefault(this._overflowAttributes,()=>this._aggregator.createAccumulation(collectionTime))?.record(value);return}accumulation=this._aggregator.createAccumulation(collectionTime),this._activeCollectionStorage.set(attributes,accumulation)}accumulation?.record(value)}batchCumulate(measurements,collectionTime){Array.from(measurements.entries()).forEach(([attributes,value,hashCode])=>{let accumulation=this._aggregator.createAccumulation(collectionTime);accumulation?.record(value);let delta=accumulation;if(this._cumulativeMemoStorage.has(attributes,hashCode)){let previous=this._cumulativeMemoStorage.get(attributes,hashCode);delta=this._aggregator.diff(previous,accumulation)}else if(this._cumulativeMemoStorage.size>=this._cardinalityLimit&&(attributes=this._overflowAttributes,hashCode=this._overflowHashCode,this._cumulativeMemoStorage.has(attributes,hashCode))){let previous=this._cumulativeMemoStorage.get(attributes,hashCode);delta=this._aggregator.diff(previous,accumulation)}if(this._activeCollectionStorage.has(attributes,hashCode)){let active=this._activeCollectionStorage.get(attributes,hashCode);delta=this._aggregator.merge(active,delta)}this._cumulativeMemoStorage.set(attributes,accumulation,hashCode),this._activeCollectionStorage.set(attributes,delta,hashCode)})}collect(){let unreportedDelta=this._activeCollectionStorage;return this._activeCollectionStorage=new HashMap_1.AttributeHashMap,unreportedDelta}}})),require_TemporalMetricProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TemporalMetricProcessor=void 0;let AggregationTemporality_1=require_AggregationTemporality(),HashMap_1=require_HashMap();exports.TemporalMetricProcessor=class TemporalMetricProcessor{_aggregator;_unreportedAccumulations=new Map;_reportHistory=new Map;constructor(_aggregator,collectorHandles){this._aggregator=_aggregator,collectorHandles.forEach(handle=>{this._unreportedAccumulations.set(handle,[])})}buildMetrics(collector,instrumentDescriptor,currentAccumulations,collectionTime){this._stashAccumulations(currentAccumulations);let unreportedAccumulations=this._getMergedUnreportedAccumulations(collector),result=unreportedAccumulations,aggregationTemporality;if(this._reportHistory.has(collector)){let last=this._reportHistory.get(collector),lastCollectionTime=last.collectionTime;aggregationTemporality=last.aggregationTemporality,result=aggregationTemporality===AggregationTemporality_1.AggregationTemporality.CUMULATIVE?TemporalMetricProcessor.merge(last.accumulations,unreportedAccumulations,this._aggregator):TemporalMetricProcessor.calibrateStartTime(last.accumulations,unreportedAccumulations,lastCollectionTime)}else aggregationTemporality=collector.selectAggregationTemporality(instrumentDescriptor.type);this._reportHistory.set(collector,{accumulations:result,collectionTime,aggregationTemporality});let accumulationRecords=AttributesMapToAccumulationRecords(result);if(accumulationRecords.length!==0)return this._aggregator.toMetricData(instrumentDescriptor,aggregationTemporality,accumulationRecords,collectionTime)}_stashAccumulations(currentAccumulation){let registeredCollectors=this._unreportedAccumulations.keys();for(let collector of registeredCollectors){let stash=this._unreportedAccumulations.get(collector);stash===void 0&&(stash=[],this._unreportedAccumulations.set(collector,stash)),stash.push(currentAccumulation)}}_getMergedUnreportedAccumulations(collector){let result=new HashMap_1.AttributeHashMap,unreportedList=this._unreportedAccumulations.get(collector);if(this._unreportedAccumulations.set(collector,[]),unreportedList===void 0)return result;for(let it of unreportedList)result=TemporalMetricProcessor.merge(result,it,this._aggregator);return result}static merge(last,current,aggregator){let result=last,iterator=current.entries(),next=iterator.next();for(;next.done!==!0;){let[key,record,hash]=next.value;if(last.has(key,hash)){let lastAccumulation=last.get(key,hash),accumulation=aggregator.merge(lastAccumulation,record);result.set(key,accumulation,hash)}else result.set(key,record,hash);next=iterator.next()}return result}static calibrateStartTime(last,current,lastCollectionTime){for(let[key,hash]of last.keys())current.get(key,hash)?.setStartTime(lastCollectionTime);return current}};function AttributesMapToAccumulationRecords(map){return Array.from(map.entries())}})),require_AsyncMetricStorage=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.AsyncMetricStorage=void 0;let MetricStorage_1=require_MetricStorage(),DeltaMetricProcessor_1=require_DeltaMetricProcessor(),TemporalMetricProcessor_1=require_TemporalMetricProcessor(),HashMap_1=require_HashMap();exports.AsyncMetricStorage=class extends MetricStorage_1.MetricStorage{_attributesProcessor;_aggregationCardinalityLimit;_deltaMetricStorage;_temporalMetricStorage;constructor(_instrumentDescriptor,aggregator,_attributesProcessor,collectorHandles,_aggregationCardinalityLimit){super(_instrumentDescriptor),this._attributesProcessor=_attributesProcessor,this._aggregationCardinalityLimit=_aggregationCardinalityLimit,this._deltaMetricStorage=new DeltaMetricProcessor_1.DeltaMetricProcessor(aggregator,this._aggregationCardinalityLimit),this._temporalMetricStorage=new TemporalMetricProcessor_1.TemporalMetricProcessor(aggregator,collectorHandles)}record(measurements,observationTime){let processed=new HashMap_1.AttributeHashMap;Array.from(measurements.entries()).forEach(([attributes,value])=>{processed.set(this._attributesProcessor.process(attributes),value)}),this._deltaMetricStorage.batchCumulate(processed,observationTime)}collect(collector,collectionTime){let accumulations=this._deltaMetricStorage.collect();return this._temporalMetricStorage.buildMetrics(collector,this._instrumentDescriptor,accumulations,collectionTime)}}})),require_RegistrationConflicts=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getConflictResolutionRecipe=exports.getDescriptionResolutionRecipe=exports.getTypeConflictResolutionRecipe=exports.getUnitConflictResolutionRecipe=exports.getValueTypeConflictResolutionRecipe=exports.getIncompatibilityDetails=void 0;function getIncompatibilityDetails(existing,otherDescriptor){let incompatibility=``;return existing.unit!==otherDescriptor.unit&&(incompatibility+=`\t- Unit '${existing.unit}' does not match '${otherDescriptor.unit}'\n`),existing.type!==otherDescriptor.type&&(incompatibility+=`\t- Type '${existing.type}' does not match '${otherDescriptor.type}'\n`),existing.valueType!==otherDescriptor.valueType&&(incompatibility+=`\t- Value Type '${existing.valueType}' does not match '${otherDescriptor.valueType}'\n`),existing.description!==otherDescriptor.description&&(incompatibility+=`\t- Description '${existing.description}' does not match '${otherDescriptor.description}'\n`),incompatibility}exports.getIncompatibilityDetails=getIncompatibilityDetails;function getValueTypeConflictResolutionRecipe(existing,otherDescriptor){return`\t- use valueType '${existing.valueType}' on instrument creation or use an instrument name other than '${otherDescriptor.name}'`}exports.getValueTypeConflictResolutionRecipe=getValueTypeConflictResolutionRecipe;function getUnitConflictResolutionRecipe(existing,otherDescriptor){return`\t- use unit '${existing.unit}' on instrument creation or use an instrument name other than '${otherDescriptor.name}'`}exports.getUnitConflictResolutionRecipe=getUnitConflictResolutionRecipe;function getTypeConflictResolutionRecipe(existing,otherDescriptor){let selector={name:otherDescriptor.name,type:otherDescriptor.type,unit:otherDescriptor.unit},selectorString=JSON.stringify(selector);return`\t- create a new view with a name other than '${existing.name}' and InstrumentSelector '${selectorString}'`}exports.getTypeConflictResolutionRecipe=getTypeConflictResolutionRecipe;function getDescriptionResolutionRecipe(existing,otherDescriptor){let selector={name:otherDescriptor.name,type:otherDescriptor.type,unit:otherDescriptor.unit},selectorString=JSON.stringify(selector);return`\t- create a new view with a name other than '${existing.name}' and InstrumentSelector '${selectorString}'
|
|
136
136
|
\t- OR - create a new view with the name ${existing.name} and description '${existing.description}' and InstrumentSelector ${selectorString}
|
|
137
137
|
\t- OR - create a new view with the name ${otherDescriptor.name} and description '${existing.description}' and InstrumentSelector ${selectorString}`}exports.getDescriptionResolutionRecipe=getDescriptionResolutionRecipe;function getConflictResolutionRecipe(existing,otherDescriptor){return existing.valueType===otherDescriptor.valueType?existing.unit===otherDescriptor.unit?existing.type===otherDescriptor.type?existing.description===otherDescriptor.description?``:getDescriptionResolutionRecipe(existing,otherDescriptor):getTypeConflictResolutionRecipe(existing,otherDescriptor):getUnitConflictResolutionRecipe(existing,otherDescriptor):getValueTypeConflictResolutionRecipe(existing,otherDescriptor)}exports.getConflictResolutionRecipe=getConflictResolutionRecipe})),require_MetricStorageRegistry=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MetricStorageRegistry=void 0;let InstrumentDescriptor_1=require_InstrumentDescriptor(),api=__require(`@opentelemetry/api`),RegistrationConflicts_1=require_RegistrationConflicts();exports.MetricStorageRegistry=class MetricStorageRegistry{_sharedRegistry=new Map;_perCollectorRegistry=new Map;static create(){return new MetricStorageRegistry}getStorages(collector){let storages=[];for(let metricStorages of this._sharedRegistry.values())storages=storages.concat(metricStorages);let perCollectorStorages=this._perCollectorRegistry.get(collector);if(perCollectorStorages!=null)for(let metricStorages of perCollectorStorages.values())storages=storages.concat(metricStorages);return storages}register(storage){this._registerStorage(storage,this._sharedRegistry)}registerForCollector(collector,storage){let storageMap=this._perCollectorRegistry.get(collector);storageMap??(storageMap=new Map,this._perCollectorRegistry.set(collector,storageMap)),this._registerStorage(storage,storageMap)}findOrUpdateCompatibleStorage(expectedDescriptor){let storages=this._sharedRegistry.get(expectedDescriptor.name);return storages===void 0?null:this._findOrUpdateCompatibleStorage(expectedDescriptor,storages)}findOrUpdateCompatibleCollectorStorage(collector,expectedDescriptor){let storageMap=this._perCollectorRegistry.get(collector);if(storageMap===void 0)return null;let storages=storageMap.get(expectedDescriptor.name);return storages===void 0?null:this._findOrUpdateCompatibleStorage(expectedDescriptor,storages)}_registerStorage(storage,storageMap){let descriptor=storage.getInstrumentDescriptor(),storages=storageMap.get(descriptor.name);if(storages===void 0){storageMap.set(descriptor.name,[storage]);return}storages.push(storage)}_findOrUpdateCompatibleStorage(expectedDescriptor,existingStorages){let compatibleStorage=null;for(let existingStorage of existingStorages){let existingDescriptor=existingStorage.getInstrumentDescriptor();(0,InstrumentDescriptor_1.isDescriptorCompatibleWith)(existingDescriptor,expectedDescriptor)?(existingDescriptor.description!==expectedDescriptor.description&&(expectedDescriptor.description.length>existingDescriptor.description.length&&existingStorage.updateDescription(expectedDescriptor.description),api.diag.warn(`A view or instrument with the name `,expectedDescriptor.name,` has already been registered, but has a different description and is incompatible with another registered view.
|
|
@@ -140,7 +140,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
140
140
|
To resolve the conflict:`,(0,RegistrationConflicts_1.getConflictResolutionRecipe)(existingDescriptor,expectedDescriptor))),compatibleStorage=existingStorage):api.diag.warn(`A view or instrument with the name `,expectedDescriptor.name,` has already been registered and is incompatible with another registered view.
|
|
141
141
|
`,`Details:
|
|
142
142
|
`,(0,RegistrationConflicts_1.getIncompatibilityDetails)(existingDescriptor,expectedDescriptor),`To resolve the conflict:
|
|
143
|
-
`,(0,RegistrationConflicts_1.getConflictResolutionRecipe)(existingDescriptor,expectedDescriptor))}return compatibleStorage}}})),require_MultiWritableMetricStorage=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MultiMetricStorage=void 0,exports.MultiMetricStorage=class{_backingStorages;constructor(_backingStorages){this._backingStorages=_backingStorages}record(value,attributes,context$1,recordTime){this._backingStorages.forEach(it=>{it.record(value,attributes,context$1,recordTime)})}}})),require_ObservableResult=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchObservableResultImpl=exports.ObservableResultImpl=void 0;let api_1$3=__require(`@opentelemetry/api`),HashMap_1=require_HashMap(),Instruments_1=require_Instruments();exports.ObservableResultImpl=class{_instrumentName;_valueType;_buffer=new HashMap_1.AttributeHashMap;constructor(_instrumentName,_valueType){this._instrumentName=_instrumentName,this._valueType=_valueType}observe(value,attributes={}){if(typeof value!=`number`){api_1$3.diag.warn(`non-number value provided to metric ${this._instrumentName}: ${value}`);return}this._valueType===api_1$3.ValueType.INT&&!Number.isInteger(value)&&(api_1$3.diag.warn(`INT value type cannot accept a floating-point value for ${this._instrumentName}, ignoring the fractional digits.`),value=Math.trunc(value),!Number.isInteger(value))||this._buffer.set(attributes,value)}},exports.BatchObservableResultImpl=class{_buffer=new Map;observe(metric,value,attributes={}){if(!(0,Instruments_1.isObservableInstrument)(metric))return;let map=this._buffer.get(metric);if(map??(map=new HashMap_1.AttributeHashMap,this._buffer.set(metric,map)),typeof value!=`number`){api_1$3.diag.warn(`non-number value provided to metric ${metric._descriptor.name}: ${value}`);return}metric._descriptor.valueType===api_1$3.ValueType.INT&&!Number.isInteger(value)&&(api_1$3.diag.warn(`INT value type cannot accept a floating-point value for ${metric._descriptor.name}, ignoring the fractional digits.`),value=Math.trunc(value),!Number.isInteger(value))||map.set(attributes,value)}}})),require_ObservableRegistry=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ObservableRegistry=void 0;let api_1$2=__require(`@opentelemetry/api`),Instruments_1=require_Instruments(),ObservableResult_1=require_ObservableResult(),utils_1=require_utils();exports.ObservableRegistry=class{_callbacks=[];_batchCallbacks=[];addCallback(callback,instrument){this._findCallback(callback,instrument)>=0||this._callbacks.push({callback,instrument})}removeCallback(callback,instrument){let idx=this._findCallback(callback,instrument);idx<0||this._callbacks.splice(idx,1)}addBatchCallback(callback,instruments){let observableInstruments=new Set(instruments.filter(Instruments_1.isObservableInstrument));if(observableInstruments.size===0){api_1$2.diag.error(`BatchObservableCallback is not associated with valid instruments`,instruments);return}this._findBatchCallback(callback,observableInstruments)>=0||this._batchCallbacks.push({callback,instruments:observableInstruments})}removeBatchCallback(callback,instruments){let observableInstruments=new Set(instruments.filter(Instruments_1.isObservableInstrument)),idx=this._findBatchCallback(callback,observableInstruments);idx<0||this._batchCallbacks.splice(idx,1)}async observe(collectionTime,timeoutMillis){let callbackFutures=this._observeCallbacks(collectionTime,timeoutMillis),batchCallbackFutures=this._observeBatchCallbacks(collectionTime,timeoutMillis);return(await(0,utils_1.PromiseAllSettled)([...callbackFutures,...batchCallbackFutures])).filter(utils_1.isPromiseAllSettledRejectionResult).map(it=>it.reason)}_observeCallbacks(observationTime,timeoutMillis){return this._callbacks.map(async({callback,instrument})=>{let observableResult=new ObservableResult_1.ObservableResultImpl(instrument._descriptor.name,instrument._descriptor.valueType),callPromise=Promise.resolve(callback(observableResult));timeoutMillis!=null&&(callPromise=(0,utils_1.callWithTimeout)(callPromise,timeoutMillis)),await callPromise,instrument._metricStorages.forEach(metricStorage=>{metricStorage.record(observableResult._buffer,observationTime)})})}_observeBatchCallbacks(observationTime,timeoutMillis){return this._batchCallbacks.map(async({callback,instruments})=>{let observableResult=new ObservableResult_1.BatchObservableResultImpl,callPromise=Promise.resolve(callback(observableResult));timeoutMillis!=null&&(callPromise=(0,utils_1.callWithTimeout)(callPromise,timeoutMillis)),await callPromise,instruments.forEach(instrument=>{let buffer=observableResult._buffer.get(instrument);buffer!=null&&instrument._metricStorages.forEach(metricStorage=>{metricStorage.record(buffer,observationTime)})})})}_findCallback(callback,instrument){return this._callbacks.findIndex(record=>record.callback===callback&&record.instrument===instrument)}_findBatchCallback(callback,instruments){return this._batchCallbacks.findIndex(record=>record.callback===callback&&(0,utils_1.setEquals)(record.instruments,instruments))}}})),require_SyncMetricStorage=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SyncMetricStorage=void 0;let MetricStorage_1=require_MetricStorage(),DeltaMetricProcessor_1=require_DeltaMetricProcessor(),TemporalMetricProcessor_1=require_TemporalMetricProcessor();exports.SyncMetricStorage=class extends MetricStorage_1.MetricStorage{_attributesProcessor;_aggregationCardinalityLimit;_deltaMetricStorage;_temporalMetricStorage;constructor(instrumentDescriptor,aggregator,_attributesProcessor,collectorHandles,_aggregationCardinalityLimit){super(instrumentDescriptor),this._attributesProcessor=_attributesProcessor,this._aggregationCardinalityLimit=_aggregationCardinalityLimit,this._deltaMetricStorage=new DeltaMetricProcessor_1.DeltaMetricProcessor(aggregator,this._aggregationCardinalityLimit),this._temporalMetricStorage=new TemporalMetricProcessor_1.TemporalMetricProcessor(aggregator,collectorHandles)}record(value,attributes,context$1,recordTime){attributes=this._attributesProcessor.process(attributes,context$1),this._deltaMetricStorage.record(value,attributes,context$1,recordTime)}collect(collector,collectionTime){let accumulations=this._deltaMetricStorage.collect();return this._temporalMetricStorage.buildMetrics(collector,this._instrumentDescriptor,accumulations,collectionTime)}}})),require_AttributesProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.createDenyListAttributesProcessor=exports.createAllowListAttributesProcessor=exports.createMultiAttributesProcessor=exports.createNoopAttributesProcessor=void 0;var NoopAttributesProcessor=class{process(incoming,_context){return incoming}},MultiAttributesProcessor=class{_processors;constructor(_processors){this._processors=_processors}process(incoming,context$1){let filteredAttributes=incoming;for(let processor of this._processors)filteredAttributes=processor.process(filteredAttributes,context$1);return filteredAttributes}},AllowListProcessor=class{_allowedAttributeNames;constructor(_allowedAttributeNames){this._allowedAttributeNames=_allowedAttributeNames}process(incoming,_context){let filteredAttributes={};return Object.keys(incoming).filter(attributeName=>this._allowedAttributeNames.includes(attributeName)).forEach(attributeName=>filteredAttributes[attributeName]=incoming[attributeName]),filteredAttributes}},DenyListProcessor=class{_deniedAttributeNames;constructor(_deniedAttributeNames){this._deniedAttributeNames=_deniedAttributeNames}process(incoming,_context){let filteredAttributes={};return Object.keys(incoming).filter(attributeName=>!this._deniedAttributeNames.includes(attributeName)).forEach(attributeName=>filteredAttributes[attributeName]=incoming[attributeName]),filteredAttributes}};function createNoopAttributesProcessor(){return NOOP}exports.createNoopAttributesProcessor=createNoopAttributesProcessor;function createMultiAttributesProcessor(processors){return new MultiAttributesProcessor(processors)}exports.createMultiAttributesProcessor=createMultiAttributesProcessor;function createAllowListAttributesProcessor(attributeAllowList){return new AllowListProcessor(attributeAllowList)}exports.createAllowListAttributesProcessor=createAllowListAttributesProcessor;function createDenyListAttributesProcessor(attributeDenyList){return new DenyListProcessor(attributeDenyList)}exports.createDenyListAttributesProcessor=createDenyListAttributesProcessor;let NOOP=new NoopAttributesProcessor})),require_MeterSharedState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterSharedState=void 0;let InstrumentDescriptor_1=require_InstrumentDescriptor(),Meter_1=require_Meter(),utils_1=require_utils(),AsyncMetricStorage_1=require_AsyncMetricStorage(),MetricStorageRegistry_1=require_MetricStorageRegistry(),MultiWritableMetricStorage_1=require_MultiWritableMetricStorage(),ObservableRegistry_1=require_ObservableRegistry(),SyncMetricStorage_1=require_SyncMetricStorage(),AttributesProcessor_1=require_AttributesProcessor();exports.MeterSharedState=class{_meterProviderSharedState;_instrumentationScope;metricStorageRegistry=new MetricStorageRegistry_1.MetricStorageRegistry;observableRegistry=new ObservableRegistry_1.ObservableRegistry;meter;constructor(_meterProviderSharedState,_instrumentationScope){this._meterProviderSharedState=_meterProviderSharedState,this._instrumentationScope=_instrumentationScope,this.meter=new Meter_1.Meter(this)}registerMetricStorage(descriptor){let storages=this._registerMetricStorage(descriptor,SyncMetricStorage_1.SyncMetricStorage);return storages.length===1?storages[0]:new MultiWritableMetricStorage_1.MultiMetricStorage(storages)}registerAsyncMetricStorage(descriptor){return this._registerMetricStorage(descriptor,AsyncMetricStorage_1.AsyncMetricStorage)}async collect(collector,collectionTime,options){let errors=await this.observableRegistry.observe(collectionTime,options?.timeoutMillis),storages=this.metricStorageRegistry.getStorages(collector);if(storages.length===0)return null;let metricDataList=storages.map(metricStorage=>metricStorage.collect(collector,collectionTime)).filter(utils_1.isNotNullish);return metricDataList.length===0?{errors}:{scopeMetrics:{scope:this._instrumentationScope,metrics:metricDataList},errors}}_registerMetricStorage(descriptor,MetricStorageType){let storages=this._meterProviderSharedState.viewRegistry.findViews(descriptor,this._instrumentationScope).map(view=>{let viewDescriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptorWithView)(view,descriptor),compatibleStorage=this.metricStorageRegistry.findOrUpdateCompatibleStorage(viewDescriptor);if(compatibleStorage!=null)return compatibleStorage;let viewStorage=new MetricStorageType(viewDescriptor,view.aggregation.createAggregator(viewDescriptor),view.attributesProcessor,this._meterProviderSharedState.metricCollectors,view.aggregationCardinalityLimit);return this.metricStorageRegistry.register(viewStorage),viewStorage});if(storages.length===0){let collectorStorages=this._meterProviderSharedState.selectAggregations(descriptor.type).map(([collector,aggregation])=>{let compatibleStorage=this.metricStorageRegistry.findOrUpdateCompatibleCollectorStorage(collector,descriptor);if(compatibleStorage!=null)return compatibleStorage;let aggregator=aggregation.createAggregator(descriptor),cardinalityLimit=collector.selectCardinalityLimit(descriptor.type),storage=new MetricStorageType(descriptor,aggregator,(0,AttributesProcessor_1.createNoopAttributesProcessor)(),[collector],cardinalityLimit);return this.metricStorageRegistry.registerForCollector(collector,storage),storage});storages=storages.concat(collectorStorages)}return storages}}})),require_MeterProviderSharedState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterProviderSharedState=void 0;let utils_1=require_utils(),ViewRegistry_1=require_ViewRegistry(),MeterSharedState_1=require_MeterSharedState(),AggregationOption_1=require_AggregationOption();exports.MeterProviderSharedState=class{resource;viewRegistry=new ViewRegistry_1.ViewRegistry;metricCollectors=[];meterSharedStates=new Map;constructor(resource){this.resource=resource}getMeterSharedState(instrumentationScope){let id=(0,utils_1.instrumentationScopeId)(instrumentationScope),meterSharedState=this.meterSharedStates.get(id);return meterSharedState??(meterSharedState=new MeterSharedState_1.MeterSharedState(this,instrumentationScope),this.meterSharedStates.set(id,meterSharedState)),meterSharedState}selectAggregations(instrumentType){let result=[];for(let collector of this.metricCollectors)result.push([collector,(0,AggregationOption_1.toAggregation)(collector.selectAggregation(instrumentType))]);return result}}})),require_MetricCollector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MetricCollector=void 0;let core_1=require_src$8();exports.MetricCollector=class{_sharedState;_metricReader;constructor(_sharedState,_metricReader){this._sharedState=_sharedState,this._metricReader=_metricReader}async collect(options){let collectionTime=(0,core_1.millisToHrTime)(Date.now()),scopeMetrics=[],errors=[],meterCollectionPromises=Array.from(this._sharedState.meterSharedStates.values()).map(async meterSharedState=>{let current=await meterSharedState.collect(this,collectionTime,options);current?.scopeMetrics!=null&&scopeMetrics.push(current.scopeMetrics),current?.errors!=null&&errors.push(...current.errors)});return await Promise.all(meterCollectionPromises),{resourceMetrics:{resource:this._sharedState.resource,scopeMetrics},errors}}async forceFlush(options){await this._metricReader.forceFlush(options)}async shutdown(options){await this._metricReader.shutdown(options)}selectAggregationTemporality(instrumentType){return this._metricReader.selectAggregationTemporality(instrumentType)}selectAggregation(instrumentType){return this._metricReader.selectAggregation(instrumentType)}selectCardinalityLimit(instrumentType){return this._metricReader.selectCardinalityLimit?.(instrumentType)??2e3}}})),require_Predicate=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExactPredicate=exports.PatternPredicate=void 0;let ESCAPE=/[\^$\\.+?()[\]{}|]/g;exports.PatternPredicate=class PatternPredicate{_matchAll;_regexp;constructor(pattern){pattern===`*`?(this._matchAll=!0,this._regexp=/.*/):(this._matchAll=!1,this._regexp=new RegExp(PatternPredicate.escapePattern(pattern)))}match(str){return this._matchAll?!0:this._regexp.test(str)}static escapePattern(pattern){return`^${pattern.replace(ESCAPE,`\\$&`).replace(`*`,`.*`)}$`}static hasWildcard(pattern){return pattern.includes(`*`)}},exports.ExactPredicate=class{_matchAll;_pattern;constructor(pattern){this._matchAll=pattern===void 0,this._pattern=pattern}match(str){return!!(this._matchAll||str===this._pattern)}}})),require_InstrumentSelector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.InstrumentSelector=void 0;let Predicate_1=require_Predicate();exports.InstrumentSelector=class{_nameFilter;_type;_unitFilter;constructor(criteria){this._nameFilter=new Predicate_1.PatternPredicate(criteria?.name??`*`),this._type=criteria?.type,this._unitFilter=new Predicate_1.ExactPredicate(criteria?.unit)}getType(){return this._type}getNameFilter(){return this._nameFilter}getUnitFilter(){return this._unitFilter}}})),require_MeterSelector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterSelector=void 0;let Predicate_1=require_Predicate();exports.MeterSelector=class{_nameFilter;_versionFilter;_schemaUrlFilter;constructor(criteria){this._nameFilter=new Predicate_1.ExactPredicate(criteria?.name),this._versionFilter=new Predicate_1.ExactPredicate(criteria?.version),this._schemaUrlFilter=new Predicate_1.ExactPredicate(criteria?.schemaUrl)}getNameFilter(){return this._nameFilter}getVersionFilter(){return this._versionFilter}getSchemaUrlFilter(){return this._schemaUrlFilter}}})),require_View=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.View=void 0;let Predicate_1=require_Predicate(),AttributesProcessor_1=require_AttributesProcessor(),InstrumentSelector_1=require_InstrumentSelector(),MeterSelector_1=require_MeterSelector(),AggregationOption_1=require_AggregationOption();function isSelectorNotProvided(options){return options.instrumentName==null&&options.instrumentType==null&&options.instrumentUnit==null&&options.meterName==null&&options.meterVersion==null&&options.meterSchemaUrl==null}function validateViewOptions(viewOptions){if(isSelectorNotProvided(viewOptions))throw Error(`Cannot create view with no selector arguments supplied`);if(viewOptions.name!=null&&(viewOptions?.instrumentName==null||Predicate_1.PatternPredicate.hasWildcard(viewOptions.instrumentName)))throw Error(`Views with a specified name must be declared with an instrument selector that selects at most one instrument per meter.`)}exports.View=class{name;description;aggregation;attributesProcessor;instrumentSelector;meterSelector;aggregationCardinalityLimit;constructor(viewOptions){validateViewOptions(viewOptions),viewOptions.attributesProcessors==null?this.attributesProcessor=(0,AttributesProcessor_1.createNoopAttributesProcessor)():this.attributesProcessor=(0,AttributesProcessor_1.createMultiAttributesProcessor)(viewOptions.attributesProcessors),this.name=viewOptions.name,this.description=viewOptions.description,this.aggregation=(0,AggregationOption_1.toAggregation)(viewOptions.aggregation??{type:AggregationOption_1.AggregationType.DEFAULT}),this.instrumentSelector=new InstrumentSelector_1.InstrumentSelector({name:viewOptions.instrumentName,type:viewOptions.instrumentType,unit:viewOptions.instrumentUnit}),this.meterSelector=new MeterSelector_1.MeterSelector({name:viewOptions.meterName,version:viewOptions.meterVersion,schemaUrl:viewOptions.meterSchemaUrl}),this.aggregationCardinalityLimit=viewOptions.aggregationCardinalityLimit}}})),require_MeterProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterProvider=void 0;let api_1$1=__require(`@opentelemetry/api`),resources_1=__require(`@opentelemetry/resources`),MeterProviderSharedState_1=require_MeterProviderSharedState(),MetricCollector_1=require_MetricCollector(),View_1=require_View();exports.MeterProvider=class{_sharedState;_shutdown=!1;constructor(options){if(this._sharedState=new MeterProviderSharedState_1.MeterProviderSharedState(options?.resource??(0,resources_1.defaultResource)()),options?.views!=null&&options.views.length>0)for(let viewOption of options.views)this._sharedState.viewRegistry.addView(new View_1.View(viewOption));if(options?.readers!=null&&options.readers.length>0)for(let metricReader of options.readers){let collector=new MetricCollector_1.MetricCollector(this._sharedState,metricReader);metricReader.setMetricProducer(collector),this._sharedState.metricCollectors.push(collector)}}getMeter(name,version$1=``,options={}){return this._shutdown?(api_1$1.diag.warn(`A shutdown MeterProvider cannot provide a Meter`),(0,api_1$1.createNoopMeter)()):this._sharedState.getMeterSharedState({name,version:version$1,schemaUrl:options.schemaUrl}).meter}async shutdown(options){if(this._shutdown){api_1$1.diag.warn(`shutdown may only be called once per MeterProvider`);return}this._shutdown=!0,await Promise.all(this._sharedState.metricCollectors.map(collector=>collector.shutdown(options)))}async forceFlush(options){if(this._shutdown){api_1$1.diag.warn(`invalid attempt to force flush after MeterProvider shutdown`);return}await Promise.all(this._sharedState.metricCollectors.map(collector=>collector.forceFlush(options)))}}})),require_src$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TimeoutError=exports.createDenyListAttributesProcessor=exports.createAllowListAttributesProcessor=exports.AggregationType=exports.MeterProvider=exports.ConsoleMetricExporter=exports.InMemoryMetricExporter=exports.PeriodicExportingMetricReader=exports.MetricReader=exports.InstrumentType=exports.DataPointType=exports.AggregationTemporality=void 0;var AggregationTemporality_1=require_AggregationTemporality();Object.defineProperty(exports,`AggregationTemporality`,{enumerable:!0,get:function(){return AggregationTemporality_1.AggregationTemporality}});var MetricData_1=require_MetricData();Object.defineProperty(exports,`DataPointType`,{enumerable:!0,get:function(){return MetricData_1.DataPointType}}),Object.defineProperty(exports,`InstrumentType`,{enumerable:!0,get:function(){return MetricData_1.InstrumentType}});var MetricReader_1=require_MetricReader();Object.defineProperty(exports,`MetricReader`,{enumerable:!0,get:function(){return MetricReader_1.MetricReader}});var PeriodicExportingMetricReader_1=require_PeriodicExportingMetricReader();Object.defineProperty(exports,`PeriodicExportingMetricReader`,{enumerable:!0,get:function(){return PeriodicExportingMetricReader_1.PeriodicExportingMetricReader}});var InMemoryMetricExporter_1=require_InMemoryMetricExporter();Object.defineProperty(exports,`InMemoryMetricExporter`,{enumerable:!0,get:function(){return InMemoryMetricExporter_1.InMemoryMetricExporter}});var ConsoleMetricExporter_1=require_ConsoleMetricExporter();Object.defineProperty(exports,`ConsoleMetricExporter`,{enumerable:!0,get:function(){return ConsoleMetricExporter_1.ConsoleMetricExporter}});var MeterProvider_1=require_MeterProvider();Object.defineProperty(exports,`MeterProvider`,{enumerable:!0,get:function(){return MeterProvider_1.MeterProvider}});var AggregationOption_1=require_AggregationOption();Object.defineProperty(exports,`AggregationType`,{enumerable:!0,get:function(){return AggregationOption_1.AggregationType}});var AttributesProcessor_1=require_AttributesProcessor();Object.defineProperty(exports,`createAllowListAttributesProcessor`,{enumerable:!0,get:function(){return AttributesProcessor_1.createAllowListAttributesProcessor}}),Object.defineProperty(exports,`createDenyListAttributesProcessor`,{enumerable:!0,get:function(){return AttributesProcessor_1.createDenyListAttributesProcessor}});var utils_1=require_utils();Object.defineProperty(exports,`TimeoutError`,{enumerable:!0,get:function(){return utils_1.TimeoutError}})})),require_internal_types=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.EAggregationTemporality=void 0,(function(EAggregationTemporality){EAggregationTemporality[EAggregationTemporality.AGGREGATION_TEMPORALITY_UNSPECIFIED=0]=`AGGREGATION_TEMPORALITY_UNSPECIFIED`,EAggregationTemporality[EAggregationTemporality.AGGREGATION_TEMPORALITY_DELTA=1]=`AGGREGATION_TEMPORALITY_DELTA`,EAggregationTemporality[EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE=2]=`AGGREGATION_TEMPORALITY_CUMULATIVE`})(exports.EAggregationTemporality||={})})),require_internal$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.createExportMetricsServiceRequest=exports.toMetric=exports.toScopeMetrics=exports.toResourceMetrics=void 0;let api_1=__require(`@opentelemetry/api`),sdk_metrics_1=require_src$3(),internal_types_1=require_internal_types(),utils_1=require_utils$1(),internal_1=require_internal$3();function toResourceMetrics(resourceMetrics,options){let encoder=(0,utils_1.getOtlpEncoder)(options),processedResource=(0,internal_1.createResource)(resourceMetrics.resource);return{resource:processedResource,schemaUrl:processedResource.schemaUrl,scopeMetrics:toScopeMetrics(resourceMetrics.scopeMetrics,encoder)}}exports.toResourceMetrics=toResourceMetrics;function toScopeMetrics(scopeMetrics,encoder){return Array.from(scopeMetrics.map(metrics=>({scope:(0,internal_1.createInstrumentationScope)(metrics.scope),metrics:metrics.metrics.map(metricData=>toMetric(metricData,encoder)),schemaUrl:metrics.scope.schemaUrl})))}exports.toScopeMetrics=toScopeMetrics;function toMetric(metricData,encoder){let out={name:metricData.descriptor.name,description:metricData.descriptor.description,unit:metricData.descriptor.unit},aggregationTemporality=toAggregationTemporality(metricData.aggregationTemporality);switch(metricData.dataPointType){case sdk_metrics_1.DataPointType.SUM:out.sum={aggregationTemporality,isMonotonic:metricData.isMonotonic,dataPoints:toSingularDataPoints(metricData,encoder)};break;case sdk_metrics_1.DataPointType.GAUGE:out.gauge={dataPoints:toSingularDataPoints(metricData,encoder)};break;case sdk_metrics_1.DataPointType.HISTOGRAM:out.histogram={aggregationTemporality,dataPoints:toHistogramDataPoints(metricData,encoder)};break;case sdk_metrics_1.DataPointType.EXPONENTIAL_HISTOGRAM:out.exponentialHistogram={aggregationTemporality,dataPoints:toExponentialHistogramDataPoints(metricData,encoder)};break}return out}exports.toMetric=toMetric;function toSingularDataPoint(dataPoint,valueType,encoder){let out={attributes:(0,internal_1.toAttributes)(dataPoint.attributes),startTimeUnixNano:encoder.encodeHrTime(dataPoint.startTime),timeUnixNano:encoder.encodeHrTime(dataPoint.endTime)};switch(valueType){case api_1.ValueType.INT:out.asInt=dataPoint.value;break;case api_1.ValueType.DOUBLE:out.asDouble=dataPoint.value;break}return out}function toSingularDataPoints(metricData,encoder){return metricData.dataPoints.map(dataPoint=>toSingularDataPoint(dataPoint,metricData.descriptor.valueType,encoder))}function toHistogramDataPoints(metricData,encoder){return metricData.dataPoints.map(dataPoint=>{let histogram=dataPoint.value;return{attributes:(0,internal_1.toAttributes)(dataPoint.attributes),bucketCounts:histogram.buckets.counts,explicitBounds:histogram.buckets.boundaries,count:histogram.count,sum:histogram.sum,min:histogram.min,max:histogram.max,startTimeUnixNano:encoder.encodeHrTime(dataPoint.startTime),timeUnixNano:encoder.encodeHrTime(dataPoint.endTime)}})}function toExponentialHistogramDataPoints(metricData,encoder){return metricData.dataPoints.map(dataPoint=>{let histogram=dataPoint.value;return{attributes:(0,internal_1.toAttributes)(dataPoint.attributes),count:histogram.count,min:histogram.min,max:histogram.max,sum:histogram.sum,positive:{offset:histogram.positive.offset,bucketCounts:histogram.positive.bucketCounts},negative:{offset:histogram.negative.offset,bucketCounts:histogram.negative.bucketCounts},scale:histogram.scale,zeroCount:histogram.zeroCount,startTimeUnixNano:encoder.encodeHrTime(dataPoint.startTime),timeUnixNano:encoder.encodeHrTime(dataPoint.endTime)}})}function toAggregationTemporality(temporality){switch(temporality){case sdk_metrics_1.AggregationTemporality.DELTA:return internal_types_1.EAggregationTemporality.AGGREGATION_TEMPORALITY_DELTA;case sdk_metrics_1.AggregationTemporality.CUMULATIVE:return internal_types_1.EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE}}function createExportMetricsServiceRequest(resourceMetrics,options){return{resourceMetrics:resourceMetrics.map(metrics=>toResourceMetrics(metrics,options))}}exports.createExportMetricsServiceRequest=createExportMetricsServiceRequest})),require_metrics$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufMetricsSerializer=void 0;let root=require_root(),internal_1=require_internal$1(),metricsResponseType=root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse,metricsRequestType=root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;exports.ProtobufMetricsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportMetricsServiceRequest)([arg]);return metricsRequestType.encode(request).finish()},deserializeResponse:arg=>metricsResponseType.decode(arg)}})),require_protobuf$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufMetricsSerializer=void 0;var metrics_1=require_metrics$1();Object.defineProperty(exports,`ProtobufMetricsSerializer`,{enumerable:!0,get:function(){return metrics_1.ProtobufMetricsSerializer}})})),require_internal=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.createExportTraceServiceRequest=exports.toOtlpSpanEvent=exports.toOtlpLink=exports.sdkSpanToOtlpSpan=void 0;let internal_1=require_internal$3(),utils_1=require_utils$1(),SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK=256,SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK=512;function buildSpanFlagsFrom(traceFlags,isRemote){let flags=traceFlags&255|256;return isRemote&&(flags|=512),flags}function sdkSpanToOtlpSpan(span,encoder){let ctx=span.spanContext(),status=span.status,parentSpanId=span.parentSpanContext?.spanId?encoder.encodeSpanContext(span.parentSpanContext?.spanId):void 0;return{traceId:encoder.encodeSpanContext(ctx.traceId),spanId:encoder.encodeSpanContext(ctx.spanId),parentSpanId,traceState:ctx.traceState?.serialize(),name:span.name,kind:span.kind==null?0:span.kind+1,startTimeUnixNano:encoder.encodeHrTime(span.startTime),endTimeUnixNano:encoder.encodeHrTime(span.endTime),attributes:(0,internal_1.toAttributes)(span.attributes),droppedAttributesCount:span.droppedAttributesCount,events:span.events.map(event=>toOtlpSpanEvent(event,encoder)),droppedEventsCount:span.droppedEventsCount,status:{code:status.code,message:status.message},links:span.links.map(link=>toOtlpLink(link,encoder)),droppedLinksCount:span.droppedLinksCount,flags:buildSpanFlagsFrom(ctx.traceFlags,span.parentSpanContext?.isRemote)}}exports.sdkSpanToOtlpSpan=sdkSpanToOtlpSpan;function toOtlpLink(link,encoder){return{attributes:link.attributes?(0,internal_1.toAttributes)(link.attributes):[],spanId:encoder.encodeSpanContext(link.context.spanId),traceId:encoder.encodeSpanContext(link.context.traceId),traceState:link.context.traceState?.serialize(),droppedAttributesCount:link.droppedAttributesCount||0,flags:buildSpanFlagsFrom(link.context.traceFlags,link.context.isRemote)}}exports.toOtlpLink=toOtlpLink;function toOtlpSpanEvent(timedEvent,encoder){return{attributes:timedEvent.attributes?(0,internal_1.toAttributes)(timedEvent.attributes):[],name:timedEvent.name,timeUnixNano:encoder.encodeHrTime(timedEvent.time),droppedAttributesCount:timedEvent.droppedAttributesCount||0}}exports.toOtlpSpanEvent=toOtlpSpanEvent;function createExportTraceServiceRequest(spans,options){return{resourceSpans:spanRecordsToResourceSpans(spans,(0,utils_1.getOtlpEncoder)(options))}}exports.createExportTraceServiceRequest=createExportTraceServiceRequest;function createResourceMap(readableSpans){let resourceMap=new Map;for(let record of readableSpans){let ilsMap=resourceMap.get(record.resource);ilsMap||(ilsMap=new Map,resourceMap.set(record.resource,ilsMap));let instrumentationScopeKey=`${record.instrumentationScope.name}@${record.instrumentationScope.version||``}:${record.instrumentationScope.schemaUrl||``}`,records=ilsMap.get(instrumentationScopeKey);records||(records=[],ilsMap.set(instrumentationScopeKey,records)),records.push(record)}return resourceMap}function spanRecordsToResourceSpans(readableSpans,encoder){let resourceMap=createResourceMap(readableSpans),out=[],entryIterator=resourceMap.entries(),entry=entryIterator.next();for(;!entry.done;){let[resource,ilmMap]=entry.value,scopeResourceSpans=[],ilmIterator=ilmMap.values(),ilmEntry=ilmIterator.next();for(;!ilmEntry.done;){let scopeSpans=ilmEntry.value;if(scopeSpans.length>0){let spans=scopeSpans.map(readableSpan=>sdkSpanToOtlpSpan(readableSpan,encoder));scopeResourceSpans.push({scope:(0,internal_1.createInstrumentationScope)(scopeSpans[0].instrumentationScope),spans,schemaUrl:scopeSpans[0].instrumentationScope.schemaUrl})}ilmEntry=ilmIterator.next()}let processedResource=(0,internal_1.createResource)(resource),transformedSpans={resource:processedResource,scopeSpans:scopeResourceSpans,schemaUrl:processedResource.schemaUrl};out.push(transformedSpans),entry=entryIterator.next()}return out}})),require_trace$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufTraceSerializer=void 0;let root=require_root(),internal_1=require_internal(),traceResponseType=root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,traceRequestType=root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;exports.ProtobufTraceSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportTraceServiceRequest)(arg);return traceRequestType.encode(request).finish()},deserializeResponse:arg=>traceResponseType.decode(arg)}})),require_protobuf=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufTraceSerializer=void 0;var trace_1=require_trace$1();Object.defineProperty(exports,`ProtobufTraceSerializer`,{enumerable:!0,get:function(){return trace_1.ProtobufTraceSerializer}})})),require_logs=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonLogsSerializer=void 0;let internal_1=require_internal$2();exports.JsonLogsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportLogsServiceRequest)(arg,{useHex:!0,useLongBits:!1});return new TextEncoder().encode(JSON.stringify(request))},deserializeResponse:arg=>{if(arg.length===0)return{};let decoder=new TextDecoder;return JSON.parse(decoder.decode(arg))}}})),require_json$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonLogsSerializer=void 0;var logs_1=require_logs();Object.defineProperty(exports,`JsonLogsSerializer`,{enumerable:!0,get:function(){return logs_1.JsonLogsSerializer}})})),require_metrics=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonMetricsSerializer=void 0;let internal_1=require_internal$1();exports.JsonMetricsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportMetricsServiceRequest)([arg],{useLongBits:!1});return new TextEncoder().encode(JSON.stringify(request))},deserializeResponse:arg=>{if(arg.length===0)return{};let decoder=new TextDecoder;return JSON.parse(decoder.decode(arg))}}})),require_json$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonMetricsSerializer=void 0;var metrics_1=require_metrics();Object.defineProperty(exports,`JsonMetricsSerializer`,{enumerable:!0,get:function(){return metrics_1.JsonMetricsSerializer}})})),require_trace=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonTraceSerializer=void 0;let internal_1=require_internal();exports.JsonTraceSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportTraceServiceRequest)(arg,{useHex:!0,useLongBits:!1});return new TextEncoder().encode(JSON.stringify(request))},deserializeResponse:arg=>{if(arg.length===0)return{};let decoder=new TextDecoder;return JSON.parse(decoder.decode(arg))}}})),require_json=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonTraceSerializer=void 0;var trace_1=require_trace();Object.defineProperty(exports,`JsonTraceSerializer`,{enumerable:!0,get:function(){return trace_1.JsonTraceSerializer}})})),require_src$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonTraceSerializer=exports.JsonMetricsSerializer=exports.JsonLogsSerializer=exports.ProtobufTraceSerializer=exports.ProtobufMetricsSerializer=exports.ProtobufLogsSerializer=void 0;var protobuf_1=require_protobuf$2();Object.defineProperty(exports,`ProtobufLogsSerializer`,{enumerable:!0,get:function(){return protobuf_1.ProtobufLogsSerializer}});var protobuf_2=require_protobuf$1();Object.defineProperty(exports,`ProtobufMetricsSerializer`,{enumerable:!0,get:function(){return protobuf_2.ProtobufMetricsSerializer}});var protobuf_3=require_protobuf();Object.defineProperty(exports,`ProtobufTraceSerializer`,{enumerable:!0,get:function(){return protobuf_3.ProtobufTraceSerializer}});var json_1=require_json$2();Object.defineProperty(exports,`JsonLogsSerializer`,{enumerable:!0,get:function(){return json_1.JsonLogsSerializer}});var json_2=require_json$1();Object.defineProperty(exports,`JsonMetricsSerializer`,{enumerable:!0,get:function(){return json_2.JsonMetricsSerializer}});var json_3=require_json();Object.defineProperty(exports,`JsonTraceSerializer`,{enumerable:!0,get:function(){return json_3.JsonTraceSerializer}})}));function validateAndNormalizeHeaders(partialHeaders){let headers={};return Object.entries(partialHeaders??{}).forEach(([key,value])=>{value===void 0?diag.warn(`Header "${key}" has invalid value (${value}) and will be ignored`):headers[key]=String(value)}),headers}var init_util=__esmMin((()=>{}));function mergeHeaders(userProvidedHeaders,fallbackHeaders,defaultHeaders){return async()=>{let requiredHeaders={...await defaultHeaders()},headers={};return fallbackHeaders!=null&&Object.assign(headers,await fallbackHeaders()),userProvidedHeaders!=null&&Object.assign(headers,validateAndNormalizeHeaders(await userProvidedHeaders())),Object.assign(headers,requiredHeaders)}}function validateUserProvidedUrl(url$1){if(url$1!=null)try{let base=globalThis.location?.href;return new URL(url$1,base).href}catch{throw Error(`Configuration: Could not parse user-provided export URL: '${url$1}'`)}}function mergeOtlpHttpConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration){return{...mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration),headers:mergeHeaders(userProvidedConfiguration.headers,fallbackConfiguration.headers,defaultConfiguration.headers),url:validateUserProvidedUrl(userProvidedConfiguration.url)??fallbackConfiguration.url??defaultConfiguration.url}}function getHttpConfigurationDefaults(requiredHeaders,signalResourcePath){return{...getSharedConfigurationDefaults(),headers:async()=>requiredHeaders,url:`http://localhost:4318/`+signalResourcePath}}var init_otlp_http_configuration=__esmMin((()=>{init_shared_configuration(),init_util()}));function httpAgentFactoryFromOptions(options){return async protocol=>{let isInsecure=protocol===`http:`,{Agent}=await(isInsecure?import(`http`):import(`https`));if(isInsecure){let{ca,cert,key,...insecureOptions}=options;return new Agent(insecureOptions)}return new Agent(options)}}function mergeOtlpNodeHttpConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration){return{...mergeOtlpHttpConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration),agentFactory:userProvidedConfiguration.agentFactory??fallbackConfiguration.agentFactory??defaultConfiguration.agentFactory,userAgent:userProvidedConfiguration.userAgent}}function getNodeHttpConfigurationDefaults(requiredHeaders,signalResourcePath){return{...getHttpConfigurationDefaults(requiredHeaders,signalResourcePath),agentFactory:httpAgentFactoryFromOptions({keepAlive:!0})}}var init_otlp_node_http_configuration=__esmMin((()=>{init_otlp_http_configuration()}));function isExportRetryable(statusCode){return[429,502,503,504].includes(statusCode)}function parseRetryAfterToMills(retryAfter){if(retryAfter==null)return;let seconds=Number.parseInt(retryAfter,10);if(Number.isInteger(seconds))return seconds>0?seconds*1e3:-1;let delay=new Date(retryAfter).getTime()-Date.now();return delay>=0?delay:0}var init_is_export_retryable=__esmMin((()=>{})),VERSION,init_version=__esmMin((()=>{VERSION=`0.208.0`}));function sendWithHttp(request,url$1,headers,compression,userAgent,agent,data,onDone,timeoutMillis){let parsedUrl=new URL(url$1);userAgent?headers[`User-Agent`]=`${userAgent} ${DEFAULT_USER_AGENT}`:headers[`User-Agent`]=DEFAULT_USER_AGENT;let req=request({hostname:parsedUrl.hostname,port:parsedUrl.port,path:parsedUrl.pathname,method:`POST`,headers,agent},res=>{let responseData=[];res.on(`data`,chunk=>responseData.push(chunk)),res.on(`end`,()=>{res.statusCode&&res.statusCode<299?onDone({status:`success`,data:Buffer.concat(responseData)}):res.statusCode&&isExportRetryable(res.statusCode)?onDone({status:`retryable`,retryInMillis:parseRetryAfterToMills(res.headers[`retry-after`])}):onDone({status:`failure`,error:new OTLPExporterError(res.statusMessage,res.statusCode,Buffer.concat(responseData).toString())})})});req.setTimeout(timeoutMillis,()=>{req.destroy(),onDone({status:`failure`,error:Error(`Request Timeout`)})}),req.on(`error`,error=>{onDone({status:`failure`,error})}),compressAndSend(req,compression,data,error=>{onDone({status:`failure`,error})})}function compressAndSend(req,compression,data,onError){let dataStream=readableFromUint8Array(data);compression===`gzip`&&(req.setHeader(`Content-Encoding`,`gzip`),dataStream=dataStream.on(`error`,onError).pipe(zlib.createGzip()).on(`error`,onError)),dataStream.pipe(req).on(`error`,onError)}function readableFromUint8Array(buff){let readable=new Readable;return readable.push(buff),readable.push(null),readable}var DEFAULT_USER_AGENT,init_http_transport_utils=__esmMin((()=>{init_is_export_retryable(),init_types(),init_version(),DEFAULT_USER_AGENT=`OTel-OTLP-Exporter-JavaScript/${VERSION}`}));async function requestFunctionFactory(protocol){let{request}=await(protocol===`http:`?import(`http`):import(`https`));return request}function createHttpExporterTransport(parameters){return new HttpExporterTransport(parameters)}var HttpExporterTransport,init_http_exporter_transport=__esmMin((()=>{init_http_transport_utils(),HttpExporterTransport=class{_parameters;_utils=null;constructor(_parameters){this._parameters=_parameters}async send(data,timeoutMillis){let{agent,request}=await this._loadUtils(),headers=await this._parameters.headers();return new Promise(resolve=>{sendWithHttp(request,this._parameters.url,headers,this._parameters.compression,this._parameters.userAgent,agent,data,result=>{resolve(result)},timeoutMillis)})}shutdown(){}async _loadUtils(){let utils=this._utils;if(utils===null){let protocol=new URL(this._parameters.url).protocol,[agent,request]=await Promise.all([this._parameters.agentFactory(protocol),requestFunctionFactory(protocol)]);utils=this._utils={agent,request}}return utils}}}));function getJitter(){return 2*JITTER*Math.random()-JITTER}function createRetryingTransport(options){return new RetryingTransport(options.transport)}var MAX_ATTEMPTS,INITIAL_BACKOFF,MAX_BACKOFF,BACKOFF_MULTIPLIER,JITTER,RetryingTransport,init_retrying_transport=__esmMin((()=>{MAX_ATTEMPTS=5,INITIAL_BACKOFF=1e3,MAX_BACKOFF=5e3,BACKOFF_MULTIPLIER=1.5,JITTER=.2,RetryingTransport=class{_transport;constructor(_transport){this._transport=_transport}retry(data,timeoutMillis,inMillis){return new Promise((resolve,reject)=>{setTimeout(()=>{this._transport.send(data,timeoutMillis).then(resolve,reject)},inMillis)})}async send(data,timeoutMillis){let deadline=Date.now()+timeoutMillis,result=await this._transport.send(data,timeoutMillis),attempts=MAX_ATTEMPTS,nextBackoff=INITIAL_BACKOFF;for(;result.status===`retryable`&&attempts>0;){attempts--;let backoff=Math.max(Math.min(nextBackoff,MAX_BACKOFF)+getJitter(),0);nextBackoff*=BACKOFF_MULTIPLIER;let retryInMillis=result.retryInMillis??backoff,remainingTimeoutMillis=deadline-Date.now();if(retryInMillis>remainingTimeoutMillis)return result;result=await this.retry(data,remainingTimeoutMillis,retryInMillis)}return result}shutdown(){return this._transport.shutdown()}}}));function createOtlpHttpExportDelegate(options,serializer){return createOtlpExportDelegate({transport:createRetryingTransport({transport:createHttpExporterTransport(options)}),serializer,promiseHandler:createBoundedQueueExportPromiseHandler(options)},{timeout:options.timeoutMillis})}var init_otlp_http_export_delegate=__esmMin((()=>{init_otlp_export_delegate(),init_http_exporter_transport(),init_bounded_queue_export_promise_handler(),init_retrying_transport()}));function parseAndValidateTimeoutFromEnv(timeoutEnvVar){let envTimeout=(0,import_src$1.getNumberFromEnv)(timeoutEnvVar);if(envTimeout!=null){if(Number.isFinite(envTimeout)&&envTimeout>0)return envTimeout;diag.warn(`Configuration: ${timeoutEnvVar} is invalid, expected number greater than 0 (actual: ${envTimeout})`)}}function getTimeoutFromEnv(signalIdentifier){let specificTimeout=parseAndValidateTimeoutFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_TIMEOUT`),nonSpecificTimeout=parseAndValidateTimeoutFromEnv(`OTEL_EXPORTER_OTLP_TIMEOUT`);return specificTimeout??nonSpecificTimeout}function parseAndValidateCompressionFromEnv(compressionEnvVar){let compression=(0,import_src$1.getStringFromEnv)(compressionEnvVar)?.trim();if(compression==null||compression===`none`||compression===`gzip`)return compression;diag.warn(`Configuration: ${compressionEnvVar} is invalid, expected 'none' or 'gzip' (actual: '${compression}')`)}function getCompressionFromEnv(signalIdentifier){let specificCompression=parseAndValidateCompressionFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_COMPRESSION`),nonSpecificCompression=parseAndValidateCompressionFromEnv(`OTEL_EXPORTER_OTLP_COMPRESSION`);return specificCompression??nonSpecificCompression}function getSharedConfigurationFromEnvironment(signalIdentifier){return{timeoutMillis:getTimeoutFromEnv(signalIdentifier),compression:getCompressionFromEnv(signalIdentifier)}}var import_src$1,init_shared_env_configuration=__esmMin((()=>{import_src$1=require_src$8()}));function getStaticHeadersFromEnv(signalIdentifier){let signalSpecificRawHeaders=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_${signalIdentifier}_HEADERS`),nonSignalSpecificRawHeaders=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_HEADERS`),signalSpecificHeaders=(0,import_src.parseKeyPairsIntoRecord)(signalSpecificRawHeaders),nonSignalSpecificHeaders=(0,import_src.parseKeyPairsIntoRecord)(nonSignalSpecificRawHeaders);if(!(Object.keys(signalSpecificHeaders).length===0&&Object.keys(nonSignalSpecificHeaders).length===0))return Object.assign({},(0,import_src.parseKeyPairsIntoRecord)(nonSignalSpecificRawHeaders),(0,import_src.parseKeyPairsIntoRecord)(signalSpecificRawHeaders))}function appendRootPathToUrlIfNeeded(url$1){try{return new URL(url$1).toString()}catch{diag.warn(`Configuration: Could not parse environment-provided export URL: '${url$1}', falling back to undefined`);return}}function appendResourcePathToUrl(url$1,path$2){try{new URL(url$1)}catch{diag.warn(`Configuration: Could not parse environment-provided export URL: '${url$1}', falling back to undefined`);return}url$1.endsWith(`/`)||(url$1+=`/`),url$1+=path$2;try{new URL(url$1)}catch{diag.warn(`Configuration: Provided URL appended with '${path$2}' is not a valid URL, using 'undefined' instead of '${url$1}'`);return}return url$1}function getNonSpecificUrlFromEnv(signalResourcePath){let envUrl=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_ENDPOINT`);if(envUrl!==void 0)return appendResourcePathToUrl(envUrl,signalResourcePath)}function getSpecificUrlFromEnv(signalIdentifier){let envUrl=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_${signalIdentifier}_ENDPOINT`);if(envUrl!==void 0)return appendRootPathToUrlIfNeeded(envUrl)}function readFileFromEnv(signalSpecificEnvVar,nonSignalSpecificEnvVar,warningMessage){let signalSpecificPath=(0,import_src.getStringFromEnv)(signalSpecificEnvVar),nonSignalSpecificPath=(0,import_src.getStringFromEnv)(nonSignalSpecificEnvVar),filePath=signalSpecificPath??nonSignalSpecificPath;if(filePath!=null)try{return fs$2.readFileSync(path$1.resolve(process.cwd(),filePath))}catch{diag.warn(warningMessage);return}else return}function getClientCertificateFromEnv(signalIdentifier){return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CLIENT_CERTIFICATE`,`OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`,`Failed to read client certificate chain file`)}function getClientKeyFromEnv(signalIdentifier){return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CLIENT_KEY`,`OTEL_EXPORTER_OTLP_CLIENT_KEY`,`Failed to read client certificate private key file`)}function getRootCertificateFromEnv(signalIdentifier){return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CERTIFICATE`,`OTEL_EXPORTER_OTLP_CERTIFICATE`,`Failed to read root certificate file`)}function getNodeHttpConfigurationFromEnvironment(signalIdentifier,signalResourcePath){return{...getSharedConfigurationFromEnvironment(signalIdentifier),url:getSpecificUrlFromEnv(signalIdentifier)??getNonSpecificUrlFromEnv(signalResourcePath),headers:wrapStaticHeadersInFunction(getStaticHeadersFromEnv(signalIdentifier)),agentFactory:httpAgentFactoryFromOptions({keepAlive:!0,ca:getRootCertificateFromEnv(signalIdentifier),cert:getClientCertificateFromEnv(signalIdentifier),key:getClientKeyFromEnv(signalIdentifier)})}}var import_src,init_otlp_node_http_env_configuration=__esmMin((()=>{import_src=require_src$8(),init_shared_env_configuration(),init_shared_configuration(),init_otlp_node_http_configuration()}));function convertLegacyHeaders(config){return typeof config.headers==`function`?config.headers:wrapStaticHeadersInFunction(config.headers)}var init_convert_legacy_http_options=__esmMin((()=>{init_shared_configuration()}));function convertLegacyAgentOptions(config){if(typeof config.httpAgentOptions==`function`)return config.httpAgentOptions;let legacy=config.httpAgentOptions;if(config.keepAlive!=null&&(legacy={keepAlive:config.keepAlive,...legacy}),legacy!=null)return httpAgentFactoryFromOptions(legacy)}function convertLegacyHttpOptions(config,signalIdentifier,signalResourcePath,requiredHeaders){return config.metadata&&diag.warn(`Metadata cannot be set when using http`),mergeOtlpNodeHttpConfigurationWithDefaults({url:config.url,headers:convertLegacyHeaders(config),concurrencyLimit:config.concurrencyLimit,timeoutMillis:config.timeoutMillis,compression:config.compression,agentFactory:convertLegacyAgentOptions(config),userAgent:config.userAgent},getNodeHttpConfigurationFromEnvironment(signalIdentifier,signalResourcePath),getNodeHttpConfigurationDefaults(requiredHeaders,signalResourcePath))}var init_convert_legacy_node_http_options=__esmMin((()=>{init_otlp_node_http_configuration(),init_index_node_http(),init_otlp_node_http_env_configuration(),init_convert_legacy_http_options()})),index_node_http_exports=__export({convertLegacyHttpOptions:()=>convertLegacyHttpOptions,createOtlpHttpExportDelegate:()=>createOtlpHttpExportDelegate,getSharedConfigurationFromEnvironment:()=>getSharedConfigurationFromEnvironment,httpAgentFactoryFromOptions:()=>httpAgentFactoryFromOptions}),init_index_node_http=__esmMin((()=>{init_otlp_node_http_configuration(),init_otlp_http_export_delegate(),init_shared_env_configuration(),init_convert_legacy_node_http_options()})),require_OTLPTraceExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;let otlp_exporter_base_1=(init_esm(),__toCommonJS(esm_exports)),otlp_transformer_1=require_src$2(),node_http_1=(init_index_node_http(),__toCommonJS(index_node_http_exports));exports.OTLPTraceExporter=class extends otlp_exporter_base_1.OTLPExporterBase{constructor(config={}){super((0,node_http_1.createOtlpHttpExportDelegate)((0,node_http_1.convertLegacyHttpOptions)(config,`TRACES`,`v1/traces`,{"Content-Type":`application/x-protobuf`}),otlp_transformer_1.ProtobufTraceSerializer))}}})),require_node$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;var OTLPTraceExporter_1=require_OTLPTraceExporter();Object.defineProperty(exports,`OTLPTraceExporter`,{enumerable:!0,get:function(){return OTLPTraceExporter_1.OTLPTraceExporter}})})),require_platform$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;var node_1=require_node$1();Object.defineProperty(exports,`OTLPTraceExporter`,{enumerable:!0,get:function(){return node_1.OTLPTraceExporter}})})),require_src$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;var platform_1=require_platform$1();Object.defineProperty(exports,`OTLPTraceExporter`,{enumerable:!0,get:function(){return platform_1.OTLPTraceExporter}})})),require_OTLPLogExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;let otlp_exporter_base_1=(init_esm(),__toCommonJS(esm_exports)),otlp_transformer_1=require_src$2(),node_http_1=(init_index_node_http(),__toCommonJS(index_node_http_exports));exports.OTLPLogExporter=class extends otlp_exporter_base_1.OTLPExporterBase{constructor(config={}){super((0,node_http_1.createOtlpHttpExportDelegate)((0,node_http_1.convertLegacyHttpOptions)(config,`LOGS`,`v1/logs`,{"Content-Type":`application/x-protobuf`}),otlp_transformer_1.ProtobufLogsSerializer))}}})),require_node=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;var OTLPLogExporter_1=require_OTLPLogExporter();Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return OTLPLogExporter_1.OTLPLogExporter}})})),require_platform=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;var node_1=require_node();Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return node_1.OTLPLogExporter}})})),require_src=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;var platform_1=require_platform();Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return platform_1.OTLPLogExporter}})})),require_exporters=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TelemetryExporter=void 0;let utils_1=require_utils$3();function isTraceSignal(signal){return`kind`in signal}function isLogSignal(signal){return`severityText`in signal&&`severityNumber`in signal}exports.TelemetryExporter=class{tracesExporters=[];logsExporters=[];constructor(config){if(!utils_1.globalParams.enableOTLP)return;let{OTLPTraceExporter:OTLPTraceExporter$1}=require_src$1(),{OTLPLogExporter}=require_src(),tracesSet=new Set(config.tracesEndpoint);for(let endpoint of tracesSet)this.tracesExporters.push(new OTLPTraceExporter$1({url:endpoint})),console.log(`Traces will be exported to ${endpoint}`);let logsSet=new Set(config.logsEndpoint);for(let endpoint of logsSet)this.logsExporters.push(new OTLPLogExporter({url:endpoint})),console.log(`Logs will be exported to ${endpoint}`)}async export(signals){if(!utils_1.globalParams.enableOTLP)return;let{ExportResultCode:ExportResultCode$1}=require_src$8(),exportSpans=[],exportLogs=[];signals.forEach(signal=>{isTraceSignal(signal)&&exportSpans.push(signal),isLogSignal(signal)&&exportLogs.push(signal)});let tasks=[];if(exportSpans.length>0&&this.tracesExporters.length>0){let traceExportTask=new Promise(resolve=>{let exportCallback=results=>{results.code!==ExportResultCode$1.SUCCESS&&(console.warn(`Trace export failed: ${results.code}`),console.warn(results)),resolve()};for(let exporter of this.tracesExporters)exporter.export(exportSpans,exportCallback)});tasks.push(traceExportTask)}if(exportLogs.length>0&&this.logsExporters.length>0){let logExportTask=new Promise(resolve=>{let exportCallback=results=>{results.code!==ExportResultCode$1.SUCCESS&&(console.warn(`Log export failed: ${results.code}`),console.warn(results)),resolve()};for(let exporter of this.logsExporters)exporter.export(exportLogs,exportCallback)});tasks.push(logExportTask)}await Promise.all(tasks)}async flush(){if(utils_1.globalParams.enableOTLP){for(let exporter of this.tracesExporters)await exporter.forceFlush();for(let exporter of this.logsExporters)await exporter.forceFlush()}}}})),require_dbos_executor=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOSExecutor=exports.TempWorkflowType=exports.OperationType=exports.DBOS_QUEUE_MAX_PRIORITY=exports.DBOS_QUEUE_MIN_PRIORITY=void 0;let error_1=require_error(),workflow_1=require_workflow(),collector_1=require_collector(),traces_1=require_traces(),logs_1=require_logs$2(),exporters_1=require_exporters(),system_database_1=require_system_database(),node_crypto_1=__require(`node:crypto`),decorators_1=require_decorators(),context_1=require_context(),serialize_error_1=require_serialize_error(),utils_1=require_utils$3(),_1=require_src$4(),wfqueue_1=require_wfqueue(),debugpoint_1=require_debugpoint(),scheduler_1=require_scheduler(),crypto$1=__importStar(__require(`crypto`)),workflow_management_1=require_workflow_management(),database_utils_1=require_database_utils(),debouncer_1=require_debouncer(),dbosNull={};exports.DBOS_QUEUE_MIN_PRIORITY=1,exports.DBOS_QUEUE_MAX_PRIORITY=2**31-1,exports.OperationType={HANDLER:`handler`,WORKFLOW:`workflow`,TRANSACTION:`transaction`,STEP:`step`},exports.TempWorkflowType={step:`step`,send:`send`},exports.DBOSExecutor=class DBOSExecutor{config;initialized;systemDatabase;static#e=`temp_workflow`;telemetryCollector;static defaultNotificationTimeoutSec=60;#t;systemDBSchemaName;logger;ctxLogger;tracer;#n=void 0;executorID=utils_1.globalParams.executorID;static globalInstance=void 0;constructor(config,{systemDatabase,debugMode}={}){if(this.config=config,this.#t=debugMode??!1,this.systemDBSchemaName=config.systemDatabaseSchemaName,config.telemetry.OTLPExporter){let OTLPExporter=new exporters_1.TelemetryExporter(config.telemetry.OTLPExporter);this.telemetryCollector=new collector_1.TelemetryCollector(OTLPExporter)}else this.telemetryCollector=new collector_1.TelemetryCollector;this.logger=new logs_1.GlobalLogger(this.telemetryCollector,this.config.telemetry.logs,this.appName),this.ctxLogger=new logs_1.DBOSContextualLogger(this.logger,()=>(0,traces_1.getActiveSpan)()),this.tracer=new traces_1.Tracer(this.telemetryCollector,this.appName),this.#t&&this.logger.info(`Running in debug mode!`),systemDatabase?(this.logger.debug(`Using provided system database`),this.systemDatabase=systemDatabase):(this.logger.debug(`Using Postgres system database`),this.systemDatabase=new system_database_1.PostgresSystemDatabase(this.config.systemDatabaseUrl,this.logger,this.config.sysDbPoolSize,this.config.systemDatabasePool,this.systemDBSchemaName)),new scheduler_1.ScheduledReceiver,this.initialized=!1,DBOSExecutor.globalInstance=this}get appName(){return this.config.name}async init(){if(this.initialized){this.logger.error(`Workflow executor already initialized!`);return}try{await this.systemDatabase.init(this.#t)}catch(err){if(err instanceof error_1.DBOSInitializationError)throw err;this.logger.error(err);let message=`Failed to initialize workflow executor: `;if(err instanceof AggregateError)for(let error of err.errors)message+=`${error.message}; `;else err instanceof Error?message+=err.message:message+=String(err);throw new error_1.DBOSInitializationError(message,err instanceof Error?err:void 0)}if(this.initialized=!0,!this.#t){utils_1.globalParams.appVersion===``&&(utils_1.globalParams.appVersion=this.computeAppVersion(),utils_1.globalParams.wasComputed=!0);let classnames=(0,decorators_1.getAllRegisteredClassNames)();for(let cls of classnames){let creg=(0,decorators_1.getClassRegistrationByName)(cls);for(let[_cfgname,cfg]of creg.configuredInstances)await cfg.initialize()}this.logger.info(`Initializing DBOS (v${utils_1.globalParams.dbosVersion})`),this.logger.info(`System Database URL: ${(0,database_utils_1.maskDatabaseUrl)(this.config.systemDatabaseUrl)}`),this.logger.info(`Executor ID: ${this.executorID}`),this.logger.info(`Application version: ${utils_1.globalParams.appVersion}`),await this.recoverPendingWorkflows([this.executorID])}this.logger.info(`DBOS launched!`)}async destroy(){try{await this.systemDatabase.awaitRunningWorkflows(),await this.systemDatabase.destroy(),await this.logger.destroy(),DBOSExecutor.globalInstance===this&&(DBOSExecutor.globalInstance=void 0)}catch(err){let e=err;throw this.logger.error(e),err}}#r(wf){return{methReg:(0,decorators_1.getFunctionRegistrationByName)(wf.workflowClassName,wf.workflowName),configuredInst:(0,decorators_1.getConfiguredInstance)(wf.workflowClassName,wf.workflowConfigName)}}static reviveResultOrError(r,success){if(success===!0||!r.error)return utils_1.DBOSJSON.parse(r.output??null);throw(0,serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(r.error))}async workflow(wf,params,...args){return this.internalWorkflow(wf,params,void 0,void 0,...args)}async internalWorkflow(wf,params,callerID,callerFunctionID,...args){let workflowID=params.workflowUUID?params.workflowUUID:(0,node_crypto_1.randomUUID)(),presetID=!!params.workflowUUID,timeoutMS=params.timeoutMS??void 0,deadlineEpochMS=params.timeoutMS?params.queueName?void 0:Date.now()+params.timeoutMS:params.deadlineEpochMS,priority=params?.enqueueOptions?.priority;if(priority!==void 0&&(priority<exports.DBOS_QUEUE_MIN_PRIORITY||priority>exports.DBOS_QUEUE_MAX_PRIORITY))throw new error_1.DBOSInvalidQueuePriorityError(priority,exports.DBOS_QUEUE_MIN_PRIORITY,exports.DBOS_QUEUE_MAX_PRIORITY);if(params.queueName&&!this.getQueueByName(params.queueName).priorityEnabled&&priority!==void 0)throw Error(`Priority is not enabled for queue ${params.queueName}. Setting priority will not have any effect.`);let pctx={...(0,context_1.getCurrentContextStore)()},wConfig={},wInfo=(0,decorators_1.getFunctionRegistration)(wf),wfname=(0,decorators_1.getRegisteredFunctionFullName)(wf).name,wfclassname=(0,decorators_1.getRegisteredFunctionClassName)(wf),isTempWorkflow=DBOSExecutor.#e===wfname||!!params.tempWfType;if(isTempWorkflow)params.tempWfName&&(wfname=params.tempWfName,wfclassname=params.tempWfClass??``);else{if(!wInfo||!wInfo.workflowConfig)throw new error_1.DBOSNotRegisteredError(wf.name);wConfig=wInfo.workflowConfig}let maxRecoveryAttempts=wConfig.maxRecoveryAttempts?wConfig.maxRecoveryAttempts:workflow_1.DEFAULT_MAX_RECOVERY_ATTEMPTS,span=this.tracer.startSpan(wfname,{status:workflow_1.StatusString.PENDING,operationUUID:workflowID,operationType:exports.OperationType.WORKFLOW,operationName:wInfo?.name??wf.name,authenticatedUser:pctx?.authenticatedUser??``,authenticatedRoles:pctx?.authenticatedRoles??[],assumedRole:pctx?.assumedRole??``}),funcArgs=(0,utils_1.serializeFunctionInputOutput)(args,[wfname,`<arguments>`]);args=funcArgs.deserialized;let internalStatus={workflowUUID:workflowID,status:params.queueName===void 0?workflow_1.StatusString.PENDING:workflow_1.StatusString.ENQUEUED,workflowName:wfname,workflowClassName:wfclassname,workflowConfigName:params.configuredInstance?.name||``,queueName:params.queueName,output:null,error:null,authenticatedUser:pctx?.authenticatedUser||``,assumedRole:pctx?.assumedRole||``,authenticatedRoles:pctx?.authenticatedRoles||[],request:pctx?.request||{},executorId:utils_1.globalParams.executorID,applicationVersion:utils_1.globalParams.appVersion,applicationID:utils_1.globalParams.appID,createdAt:Date.now(),timeoutMS,deadlineEpochMS,input:funcArgs.stringified,deduplicationID:params.enqueueOptions?.deduplicationID,priority:priority??0,queuePartitionKey:params.enqueueOptions?.queuePartitionKey};isTempWorkflow&&(internalStatus.workflowName=`${DBOSExecutor.#e}-${params.tempWfType}-${params.tempWfName}`);let $deadlineEpochMS,shouldExecute;if(this.#t){let wfStatus=await this.systemDatabase.getWorkflowStatus(workflowID);if(!wfStatus)throw new error_1.DBOSDebuggerError(`Failed to find inputs for workflow UUID ${workflowID}`);if(funcArgs.stringified!==wfStatus.input)throw new error_1.DBOSDebuggerError(`Detected different inputs for workflow UUID ${workflowID}.\n Received: ${funcArgs.stringified}\n Original: ${wfStatus.input}`)}else{if(callerFunctionID!==void 0&&callerID!==void 0){let result=await this.systemDatabase.getOperationResultAndThrowIfCancelled(callerID,callerFunctionID);if(result){if(result.error)throw(0,serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(result.error));return new workflow_1.RetrievedHandle(this.systemDatabase,result.childWorkflowID)}}let ires;try{ires=await this.systemDatabase.initWorkflowStatus(internalStatus,(0,node_crypto_1.randomUUID)(),{maxRetries:maxRecoveryAttempts,isDequeuedRequest:params.isQueueDispatch,isRecoveryRequest:params.isRecoveryDispatch})}catch(e){throw e instanceof error_1.DBOSQueueDuplicatedError&&callerID&&callerFunctionID&&await this.systemDatabase.recordOperationResult(callerID,callerFunctionID,internalStatus.workflowName,!0,Date.now(),{error:utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(e))}),e}callerFunctionID!==void 0&&callerID!==void 0&&await this.systemDatabase.recordOperationResult(callerID,callerFunctionID,internalStatus.workflowName,!0,Date.now(),{childWorkflowID:workflowID}),$deadlineEpochMS=ires.deadlineEpochMS,shouldExecute=ires.shouldExecuteOnThisExecutor,await(0,debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_WORKFLOW_ENQUEUE)}async function callPromiseWithTimeout(callPromise,deadlineEpochMS$1,sysdb){let timeoutID,timeoutResult={},timeoutPromise=new Promise((_,reject)=>{timeoutID=setTimeout(reject,deadlineEpochMS$1-Date.now(),timeoutResult)});try{return await Promise.race([callPromise,timeoutPromise])}catch(err){throw err===timeoutResult?(await sysdb.cancelWorkflow(workflowID),await callPromise.catch(()=>{}),new error_1.DBOSWorkflowCancelledError(workflowID)):err}finally{clearTimeout(timeoutID)}}async function handleWorkflowError(err,exec){let e=err;exec.logger.error(e),e.dbos_already_logged=!0,internalStatus.error=utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(e)),internalStatus.status=workflow_1.StatusString.ERROR,exec.#t||await exec.systemDatabase.recordWorkflowError(workflowID,internalStatus),span.setStatus({code:traces_1.SpanStatusCode.ERROR,message:e.message})}let runWorkflow=async()=>{let result;try{let callResult=await(0,traces_1.runWithTrace)(span,async()=>await(0,context_1.runWithParentContext)(pctx,{presetID,workflowTimeoutMS:void 0,deadlineEpochMS,workflowId:workflowID,logger:this.ctxLogger,curWFFunctionId:void 0},()=>{let callPromise=wf.call(params.configuredInstance,...args);return $deadlineEpochMS===void 0?callPromise:callPromiseWithTimeout(callPromise,$deadlineEpochMS,this.systemDatabase)}));if(this.#t){function resultsMatch(recordedResult$1,callResult$1){return recordedResult$1===null?callResult$1==null:utils_1.DBOSJSON.stringify(recordedResult$1)===utils_1.DBOSJSON.stringify(callResult$1)}let recordedResult=DBOSExecutor.reviveResultOrError(await this.systemDatabase.awaitWorkflowResult(workflowID));resultsMatch(recordedResult,callResult)||this.logger.error(`Detect different output for the workflow UUID ${workflowID}!\n Received: ${utils_1.DBOSJSON.stringify(callResult)}\n Original: ${utils_1.DBOSJSON.stringify(recordedResult)}`),result=recordedResult}else result=callResult;let funcResult=(0,utils_1.serializeFunctionInputOutput)(result,[wfname,`<result>`]);result=funcResult.deserialized,internalStatus.output=funcResult.stringified,internalStatus.status=workflow_1.StatusString.SUCCESS,this.#t||await this.systemDatabase.recordWorkflowOutput(workflowID,internalStatus),span.setStatus({code:traces_1.SpanStatusCode.OK})}catch(err){if(err instanceof error_1.DBOSWorkflowConflictError)result=await this.retrieveWorkflow(workflowID).getResult(),span.setAttribute(`cached`,!0),span.setStatus({code:traces_1.SpanStatusCode.OK});else if(err instanceof error_1.DBOSWorkflowCancelledError){if(span.setStatus({code:traces_1.SpanStatusCode.ERROR,message:err.message}),internalStatus.error=err.message,err.workflowID===workflowID)throw internalStatus.status=workflow_1.StatusString.CANCELLED,err;{let e=new error_1.DBOSAwaitedWorkflowCancelledError(err.workflowID);throw await handleWorkflowError(e,this),e}}else throw await handleWorkflowError(err,this),err}finally{this.tracer.endSpan(span)}return result};if(this.#t||shouldExecute&&(params.queueName===void 0||params.executeWorkflow)&&!this.systemDatabase.checkForRunningWorkflow(workflowID)){let workflowPromise=runWorkflow();return this.systemDatabase.registerRunningWorkflow(workflowID,workflowPromise),new workflow_1.InvokedHandle(this.systemDatabase,workflowPromise,workflowID,wf.name)}else return new workflow_1.RetrievedHandle(this.systemDatabase,workflowID)}getQueueByName(name){let q=wfqueue_1.wfQueueRunner.wfQueuesByName.get(name);if(!q)throw new error_1.DBOSNotRegisteredError(name,`Workflow queue '${name}' is not defined.`);return q}async runStepTempWF(stepFn,params,...args){return await(await this.startStepTempWF(stepFn,params,void 0,void 0,...args)).getResult()}async startStepTempWF(stepFn,params,callerWFID,callerFunctionID,...args){return await this.internalWorkflow(async(...args$1)=>await this.callStepFunction(stepFn,void 0,void 0,params.configuredInstance??null,...args$1),{...params,tempWfType:exports.TempWorkflowType.step,tempWfName:(0,decorators_1.getRegisteredFunctionName)(stepFn),tempWfClass:(0,decorators_1.getRegisteredFunctionClassName)(stepFn)},callerWFID,callerFunctionID,...args)}async callStepFunction(stepFn,stepFnName,stepConfig,clsInst,...args){stepFnName=stepFnName??stepFn.name??`<unnamed>`;let startTime=Date.now();if(stepConfig||=(0,decorators_1.getFunctionRegistration)(stepFn)?.stepConfig,stepConfig===void 0)throw new error_1.DBOSNotRegisteredError(stepFnName);let funcID=(0,context_1.functionIDGetIncrement)(),lctx={...(0,context_1.getCurrentContextStore)()},wfid=lctx.workflowId;await this.systemDatabase.checkIfCanceled(wfid);let maxRetryIntervalSec=3600,span=this.tracer.startSpan(stepFnName,{operationUUID:wfid,operationType:exports.OperationType.STEP,operationName:stepFnName,authenticatedUser:lctx.authenticatedUser??``,assumedRole:lctx.assumedRole??``,authenticatedRoles:lctx.authenticatedRoles??[],retriesAllowed:stepConfig.retriesAllowed,intervalSeconds:stepConfig.intervalSeconds,maxAttempts:stepConfig.maxAttempts,backoffRate:stepConfig.backoffRate}),checkr=await this.systemDatabase.getOperationResultAndThrowIfCancelled(wfid,funcID);if(checkr){if(checkr.functionName!==stepFnName)throw new error_1.DBOSUnexpectedStepError(wfid,funcID,stepFnName,checkr.functionName??`?`);let check=DBOSExecutor.reviveResultOrError(checkr);return span.setAttribute(`cached`,!0),span.setStatus({code:traces_1.SpanStatusCode.OK}),this.tracer.endSpan(span),check}if(this.#t)throw new error_1.DBOSDebuggerError(`Failed to find the recorded output for the step: workflow UUID: ${wfid}, step number: ${funcID}`);let maxAttempts=stepConfig.maxAttempts??3,result=dbosNull,err=dbosNull,errors=[];if(stepConfig.retriesAllowed){let attemptNum=0,intervalSeconds=stepConfig.intervalSeconds??1;for(intervalSeconds>maxRetryIntervalSec&&this.logger.warn(`Step config interval exceeds maximum allowed interval, capped to ${maxRetryIntervalSec} seconds!`);result===dbosNull&&attemptNum++<(maxAttempts??3);)try{await this.systemDatabase.checkIfCanceled(wfid);let cresult;await(0,traces_1.runWithTrace)(span,async()=>{await(0,context_1.runInStepContext)(lctx,funcID,maxAttempts,attemptNum,async()=>{cresult=await stepFn.call(clsInst,...args)})}),result=cresult}catch(error){let e=error;errors.push(e),this.logger.warn(`Error in step being automatically retried. Attempt ${attemptNum} of ${maxAttempts}. ${e.stack}`),span.addEvent(`Step attempt ${attemptNum+1} failed`,{retryIntervalSeconds:intervalSeconds,error:error.message},performance.now()),attemptNum<maxAttempts&&(await(0,utils_1.sleepms)(intervalSeconds*1e3),intervalSeconds*=stepConfig.backoffRate??2,intervalSeconds=intervalSeconds<maxRetryIntervalSec?intervalSeconds:maxRetryIntervalSec)}}else try{let cresult;await(0,traces_1.runWithTrace)(span,async()=>{await(0,context_1.runInStepContext)(lctx,funcID,maxAttempts,void 0,async()=>{cresult=await stepFn.call(clsInst,...args)})}),result=cresult}catch(error){err=error}if(result===dbosNull)throw err=err===dbosNull?new error_1.DBOSMaxStepRetriesError(stepFnName,maxAttempts,errors):err,await this.systemDatabase.recordOperationResult(wfid,funcID,stepFnName,!0,startTime,{error:utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(err))}),span.setStatus({code:traces_1.SpanStatusCode.ERROR,message:err.message}),this.tracer.endSpan(span),err;{let funcResult=(0,utils_1.serializeFunctionInputOutput)(result,[stepFnName,`<result>`]);return await this.systemDatabase.recordOperationResult(wfid,funcID,stepFnName,!0,startTime,{output:funcResult.stringified}),span.setStatus({code:traces_1.SpanStatusCode.OK}),this.tracer.endSpan(span),funcResult.deserialized}}async runSendTempWF(destinationId,message,topic,idempotencyKey){let temp_workflow=async(destinationId$1,message$1,topic$1)=>{let ctx=(0,context_1.getCurrentContextStore)(),functionID=(0,context_1.functionIDGetIncrement)();await this.systemDatabase.send(ctx.workflowId,functionID,destinationId$1,utils_1.DBOSJSON.stringify(message$1),topic$1)},workflowUUID=idempotencyKey?destinationId+idempotencyKey:void 0;return(await this.workflow(temp_workflow,{workflowUUID,tempWfType:exports.TempWorkflowType.send,configuredInstance:null},destinationId,message,topic)).getResult()}async getEvent(workflowUUID,key,timeoutSeconds=DBOSExecutor.defaultNotificationTimeoutSec){return utils_1.DBOSJSON.parse(await this.systemDatabase.getEvent(workflowUUID,key,timeoutSeconds))}forkWorkflow(workflowID,startStep,options={}){let newWorkflowID=options.newWorkflowID??(0,context_1.getNextWFID)(void 0);return(0,workflow_management_1.forkWorkflow)(this.systemDatabase,workflowID,startStep,{...options,newWorkflowID})}retrieveWorkflow(workflowID){return new workflow_1.RetrievedHandle(this.systemDatabase,workflowID)}async runInternalStep(callback,functionName,workflowID,functionID,childWfId){let startTime=Date.now(),result=await this.systemDatabase.getOperationResultAndThrowIfCancelled(workflowID,functionID);if(result){if(result.functionName!==functionName)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,functionName,result.functionName);return DBOSExecutor.reviveResultOrError(result)}try{let output=await callback(),funcOutput=(0,utils_1.serializeFunctionInputOutput)(output,[functionName,`<result>`]);return await this.systemDatabase.recordOperationResult(workflowID,functionID,functionName,!0,startTime,{output:funcOutput.stringified,childWorkflowID:childWfId}),funcOutput.deserialized}catch(e){throw await this.systemDatabase.recordOperationResult(workflowID,functionID,functionName,!1,startTime,{error:utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(e)),childWorkflowID:childWfId}),e}}async getWorkflowStatus(workflowID,callerID,callerFN){let status=await this.systemDatabase.getWorkflowStatus(workflowID,callerID,callerFN);return status?(0,workflow_management_1.toWorkflowStatus)(status):null}async listWorkflows(input){return(0,workflow_management_1.listWorkflows)(this.systemDatabase,input)}async listQueuedWorkflows(input){return(0,workflow_management_1.listQueuedWorkflows)(this.systemDatabase,input)}async listWorkflowSteps(workflowID){return(0,workflow_management_1.listWorkflowSteps)(this.systemDatabase,workflowID)}async recoverPendingWorkflows(executorIDs=[`local`]){if(this.#t)throw new error_1.DBOSDebuggerError(`Cannot recover pending workflows in debug mode.`);let handlerArray=[];for(let execID of executorIDs){this.logger.debug(`Recovering workflows assigned to executor: ${execID}`);let pendingWorkflows=await this.systemDatabase.getPendingWorkflows(execID,utils_1.globalParams.appVersion);pendingWorkflows.length>0?this.logger.info(`Recovering ${pendingWorkflows.length} workflows from application version ${utils_1.globalParams.appVersion}`):this.logger.info(`No workflows to recover from application version ${utils_1.globalParams.appVersion}`);for(let pendingWorkflow of pendingWorkflows){this.logger.debug(`Recovering workflow: ${pendingWorkflow.workflowUUID}. Queue name: ${pendingWorkflow.queueName}`);try{pendingWorkflow.queueName&&await this.systemDatabase.clearQueueAssignment(pendingWorkflow.workflowUUID)?handlerArray.push(this.retrieveWorkflow(pendingWorkflow.workflowUUID)):handlerArray.push(await this.executeWorkflowId(pendingWorkflow.workflowUUID,{isRecoveryDispatch:!0}))}catch(e){this.logger.warn(`Recovery of workflow ${pendingWorkflow.workflowUUID} failed: ${e.message}`)}}}return handlerArray}async initEventReceivers(){this.#n=wfqueue_1.wfQueueRunner.dispatchLoop(this);for(let lcl of(0,decorators_1.getLifecycleListeners)())await lcl.initialize?.()}async deactivateEventReceivers(stopQueueThread=!0){this.logger.debug(`Deactivating lifecycle listeners`);for(let lcl of(0,decorators_1.getLifecycleListeners)())try{await lcl.destroy?.()}catch(err){let e=err;this.logger.warn(`Error destroying lifecycle listener: ${e.message}`)}if(this.logger.debug(`Deactivating queue runner`),stopQueueThread)try{wfqueue_1.wfQueueRunner.stop(),await this.#n}catch(err){let e=err;this.logger.warn(`Error destroying wf queue runner: ${e.message}`)}}async executeWorkflowId(workflowID,options){let wfStatus=await this.systemDatabase.getWorkflowStatus(workflowID);if(!wfStatus)throw this.logger.error(`Failed to find workflow status for workflowUUID: ${workflowID}`),new error_1.DBOSError(`Failed to find workflow status for workflow UUID: ${workflowID}`);if(!wfStatus?.input)throw this.logger.error(`Failed to find inputs for workflowUUID: ${workflowID}`),new error_1.DBOSError(`Failed to find inputs for workflow UUID: ${workflowID}`);let inputs=utils_1.DBOSJSON.parse(wfStatus.input),recoverCtx=this.#i(workflowID,wfStatus),{methReg,configuredInst}=this.#r(wfStatus),workflowStartID=options?.startNewWorkflow?void 0:workflowID;if(methReg?.workflowConfig)return await(0,context_1.runWithTopContext)(recoverCtx,async()=>await this.workflow(methReg.registeredFunction,{workflowUUID:workflowStartID,configuredInstance:configuredInst,queueName:wfStatus.queueName,executeWorkflow:!0,deadlineEpochMS:wfStatus.deadlineEpochMS,isRecoveryDispatch:!!options?.isRecoveryDispatch,isQueueDispatch:!!options?.isQueueDispatch},...inputs));let wfName=wfStatus.workflowName,nameArr=wfName.split(`-`);if(!nameArr[0].startsWith(DBOSExecutor.#e))throw new error_1.DBOSError(`Cannot find workflow function for a non-temporary workflow, ID ${workflowID}, class '${wfStatus.workflowClassName}', function '${wfName}'; did you change your code?`);if(nameArr[1]===exports.TempWorkflowType.step){let stepReg=(0,decorators_1.getFunctionRegistrationByName)(wfStatus.workflowClassName,nameArr[2]);if(!stepReg?.stepConfig)throw this.logger.error(`Cannot find step info for ID ${workflowID}, name ${nameArr[2]}`),new error_1.DBOSNotRegisteredError(nameArr[2]);return await(0,context_1.runWithTopContext)(recoverCtx,async()=>await this.startStepTempWF(stepReg.registeredFunction,{workflowUUID:workflowStartID,configuredInstance:configuredInst,queueName:wfStatus.queueName,executeWorkflow:!0,isRecoveryDispatch:!!options?.isRecoveryDispatch,isQueueDispatch:!!options?.isQueueDispatch},void 0,void 0,...inputs))}else if(nameArr[1]===exports.TempWorkflowType.send){let temp_workflow=async(destinationID,message,topic)=>{let ctx=(0,context_1.getCurrentContextStore)(),functionID=(0,context_1.functionIDGetIncrement)();await this.systemDatabase.send(ctx.workflowId,functionID,destinationID,utils_1.DBOSJSON.stringify(message),topic)};return await(0,context_1.runWithTopContext)(recoverCtx,async()=>this.workflow(temp_workflow,{tempWfName:nameArr[2],tempWfType:exports.TempWorkflowType.send,workflowUUID:workflowStartID,queueName:wfStatus.queueName,executeWorkflow:!0,isRecoveryDispatch:!!options?.isRecoveryDispatch,isQueueDispatch:!!options?.isQueueDispatch},...inputs))}else throw this.logger.error(`Unrecognized temporary workflow! UUID ${workflowID}, name ${wfName}`),new error_1.DBOSNotRegisteredError(wfName)}async getEventDispatchState(svc,wfn,key){return await this.systemDatabase.getEventDispatchState(svc,wfn,key)}async upsertEventDispatchState(state){return await this.systemDatabase.upsertEventDispatchState(state)}#i(_workflowID,status){let oc={};return oc.request=status.request,oc.authenticatedUser=status.authenticatedUser,oc.authenticatedRoles=status.authenticatedRoles,oc.assumedRole=status.assumedRole,oc}async cancelWorkflow(workflowID){await this.systemDatabase.cancelWorkflow(workflowID),this.logger.info(`Cancelling workflow ${workflowID}`)}async getWorkflowSteps(workflowID){return(await this.systemDatabase.getAllOperationResults(workflowID)).map(row=>({function_id:row.function_id,function_name:row.function_name??`<unknown>`,child_workflow_id:row.child_workflow_id,output:row.output===null?null:utils_1.DBOSJSON.parse(row.output),error:row.error===null?null:(0,serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(row.error))}))}async resumeWorkflow(workflowID){await this.systemDatabase.resumeWorkflow(workflowID)}computeAppVersion(){let hasher=crypto$1.createHash(`md5`),sortedWorkflowSource=Array.from((0,decorators_1.getAllRegisteredFunctions)()).filter(e=>e.workflowConfig).map(i=>i.origFunction.toString()).sort();sortedWorkflowSource.push(utils_1.globalParams.dbosVersion);for(let sourceCode of sortedWorkflowSource)hasher.update(sourceCode);return hasher.digest(`hex`)}static internalQueue=void 0;static createInternalQueue(){DBOSExecutor.internalQueue===void 0&&(DBOSExecutor.internalQueue=new wfqueue_1.WorkflowQueue(utils_1.INTERNAL_QUEUE_NAME,{}))}static debouncerWorkflow=void 0;static createDebouncerWorkflow(){DBOSExecutor.debouncerWorkflow===void 0&&(DBOSExecutor.debouncerWorkflow=_1.DBOS.registerWorkflow(debouncer_1.debouncerWorkflowFunction,{name:utils_1.DEBOUNCER_WORKLOW_NAME}))}}})),require_migration_runner=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.runSysMigrationsPg=exports.getCurrentSysDBVersion=void 0;async function getCurrentSysDBVersion(client,schemaName=`dbos`){if(!(await client.query(`SELECT table_name FROM information_schema.tables WHERE table_schema = $1 AND table_name = 'dbos_migrations'`,[schemaName])).rows[0]?.table_name)return 0;let verRes=await client.query(`select version from "${schemaName}"."dbos_migrations" order by version desc limit 1`);if(verRes.rowCount===0)return 0;let raw=verRes.rows[0].version,n=Number(raw);return Number.isFinite(n)?n:0}exports.getCurrentSysDBVersion=getCurrentSysDBVersion;let DEFAULT_IGNORABLE_CODES=new Set([`42P07`,`42710`,`42701`,`42P06`,`23505`]);function isPgErrorLike(x){return typeof x==`object`&&!!x&&(`code`in x||`message`in x)}function isDDLAlreadyAppliedPgError(err,ignoreCodes){if(!isPgErrorLike(err))return!1;if(err.code&&ignoreCodes.has(err.code))return!0;let msg=err.message??``;return/already exists/i.test(msg)||/duplicate/i.test(msg)||/multiple.*?not allowed/i.test(msg)}async function runStatementsIgnoring(client,stmts,ignoreCodes,warn){for(let s of stmts)try{await client.query(s,[])}catch(err){if(isDDLAlreadyAppliedPgError(err,ignoreCodes)){warn(`Ignoring migration error; migration was likely already applied. Occurred while executing: ${s}`,err);continue}throw err}}async function runSysMigrationsPg(client,allMigrations,schemaName=`dbos`,opts={}){let{ignoreErrorCodes=DEFAULT_IGNORABLE_CODES,onWarn=m=>console.info(m)}=opts,current=await getCurrentSysDBVersion(client,schemaName),maxKnown=allMigrations.length;if(current>maxKnown)return{fromVersion:current,toVersion:current,appliedCount:0,skippedCount:allMigrations.length,notice:`Database version (${current}) is ahead of this build's max (${maxKnown}). A newer software version may be running concurrently.`};let applied=0,skipped=0,lastAppliedVersion=current,loggedInfo=!1;for(let i=0;i<allMigrations.length;i++){let m=allMigrations[i],v=i+1;if(v<=current){skipped++;continue}loggedInfo||=(onWarn(`Running DBOS system database migrations...`),!0);let stmts=m.pg??[];if(stmts.length===0){onWarn(`Migration "${m.name}" has no Postgres statements; skipping.`),skipped++;continue}await runStatementsIgnoring(client,stmts,ignoreErrorCodes,(msg,e)=>onWarn(`${msg}${e?`\n → ${String(e.message??``)}`:``}`)),applied++,lastAppliedVersion=v}return(await client.query(`UPDATE "${schemaName}"."dbos_migrations" SET "version" = $1`,[lastAppliedVersion])).rowCount===0&&await client.query(`INSERT into "${schemaName}"."dbos_migrations" ("version") values ($1)`,[lastAppliedVersion]),{fromVersion:current,toVersion:lastAppliedVersion,appliedCount:applied,skippedCount:skipped,notice:current<maxKnown&&applied===0&&skipped>0?`Nothing to apply; DB is already up-to-date relative to known migrations.`:void 0}}exports.runSysMigrationsPg=runSysMigrationsPg})),require_migrations=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.allMigrations=void 0;function allMigrations(schemaName=`dbos`){return[{name:`20240123182943_schema`,pg:[`CREATE SCHEMA IF NOT EXISTS "${schemaName}"`]},{name:`20240123182944_dbos_migrations`,pg:[`create table "${schemaName}"."dbos_migrations" ("version" bigint not null, constraint "dbos_migrations_pkey" primary key ("version"))`]},{name:`20240123183021_tables`,pg:[`create table "${schemaName}"."operation_outputs" ("workflow_uuid" text not null, "function_id" integer not null, "output" text, "error" text, constraint "operation_outputs_pkey" primary key ("workflow_uuid", "function_id"))`,`create table "${schemaName}"."workflow_inputs" ("workflow_uuid" text not null, "inputs" text not null, constraint "workflow_inputs_pkey" primary key ("workflow_uuid"))`,`create table "${schemaName}"."workflow_status" ("workflow_uuid" text, "status" text, "name" text, "authenticated_user" text, "assumed_role" text, "authenticated_roles" text, "request" text, "output" text, "error" text, "executor_id" text, constraint "workflow_status_pkey" primary key ("workflow_uuid"))`,`create table "${schemaName}"."notifications" ("destination_uuid" text not null, "topic" text, "message" text not null, "created_at_epoch_ms" bigint not null default (EXTRACT(EPOCH FROM now())*1000)::bigint)`,`create table "${schemaName}"."workflow_events" ("workflow_uuid" text not null, "key" text not null, "value" text not null, constraint "workflow_events_pkey" primary key ("workflow_uuid", "key"))`]},{name:`20240123183025_indexes`,pg:[`create index "idx_workflow_topic" on "${schemaName}"."notifications" ("destination_uuid", "topic")`]},{name:`20240123183030_triggers`,pg:[`
|
|
143
|
+
`,(0,RegistrationConflicts_1.getConflictResolutionRecipe)(existingDescriptor,expectedDescriptor))}return compatibleStorage}}})),require_MultiWritableMetricStorage=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MultiMetricStorage=void 0,exports.MultiMetricStorage=class{_backingStorages;constructor(_backingStorages){this._backingStorages=_backingStorages}record(value,attributes,context$1,recordTime){this._backingStorages.forEach(it=>{it.record(value,attributes,context$1,recordTime)})}}})),require_ObservableResult=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.BatchObservableResultImpl=exports.ObservableResultImpl=void 0;let api_1$3=__require(`@opentelemetry/api`),HashMap_1=require_HashMap(),Instruments_1=require_Instruments();exports.ObservableResultImpl=class{_instrumentName;_valueType;_buffer=new HashMap_1.AttributeHashMap;constructor(_instrumentName,_valueType){this._instrumentName=_instrumentName,this._valueType=_valueType}observe(value,attributes={}){if(typeof value!=`number`){api_1$3.diag.warn(`non-number value provided to metric ${this._instrumentName}: ${value}`);return}this._valueType===api_1$3.ValueType.INT&&!Number.isInteger(value)&&(api_1$3.diag.warn(`INT value type cannot accept a floating-point value for ${this._instrumentName}, ignoring the fractional digits.`),value=Math.trunc(value),!Number.isInteger(value))||this._buffer.set(attributes,value)}},exports.BatchObservableResultImpl=class{_buffer=new Map;observe(metric,value,attributes={}){if(!(0,Instruments_1.isObservableInstrument)(metric))return;let map=this._buffer.get(metric);if(map??(map=new HashMap_1.AttributeHashMap,this._buffer.set(metric,map)),typeof value!=`number`){api_1$3.diag.warn(`non-number value provided to metric ${metric._descriptor.name}: ${value}`);return}metric._descriptor.valueType===api_1$3.ValueType.INT&&!Number.isInteger(value)&&(api_1$3.diag.warn(`INT value type cannot accept a floating-point value for ${metric._descriptor.name}, ignoring the fractional digits.`),value=Math.trunc(value),!Number.isInteger(value))||map.set(attributes,value)}}})),require_ObservableRegistry=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ObservableRegistry=void 0;let api_1$2=__require(`@opentelemetry/api`),Instruments_1=require_Instruments(),ObservableResult_1=require_ObservableResult(),utils_1=require_utils();exports.ObservableRegistry=class{_callbacks=[];_batchCallbacks=[];addCallback(callback,instrument){this._findCallback(callback,instrument)>=0||this._callbacks.push({callback,instrument})}removeCallback(callback,instrument){let idx=this._findCallback(callback,instrument);idx<0||this._callbacks.splice(idx,1)}addBatchCallback(callback,instruments){let observableInstruments=new Set(instruments.filter(Instruments_1.isObservableInstrument));if(observableInstruments.size===0){api_1$2.diag.error(`BatchObservableCallback is not associated with valid instruments`,instruments);return}this._findBatchCallback(callback,observableInstruments)>=0||this._batchCallbacks.push({callback,instruments:observableInstruments})}removeBatchCallback(callback,instruments){let observableInstruments=new Set(instruments.filter(Instruments_1.isObservableInstrument)),idx=this._findBatchCallback(callback,observableInstruments);idx<0||this._batchCallbacks.splice(idx,1)}async observe(collectionTime,timeoutMillis){let callbackFutures=this._observeCallbacks(collectionTime,timeoutMillis),batchCallbackFutures=this._observeBatchCallbacks(collectionTime,timeoutMillis);return(await(0,utils_1.PromiseAllSettled)([...callbackFutures,...batchCallbackFutures])).filter(utils_1.isPromiseAllSettledRejectionResult).map(it=>it.reason)}_observeCallbacks(observationTime,timeoutMillis){return this._callbacks.map(async({callback,instrument})=>{let observableResult=new ObservableResult_1.ObservableResultImpl(instrument._descriptor.name,instrument._descriptor.valueType),callPromise=Promise.resolve(callback(observableResult));timeoutMillis!=null&&(callPromise=(0,utils_1.callWithTimeout)(callPromise,timeoutMillis)),await callPromise,instrument._metricStorages.forEach(metricStorage=>{metricStorage.record(observableResult._buffer,observationTime)})})}_observeBatchCallbacks(observationTime,timeoutMillis){return this._batchCallbacks.map(async({callback,instruments})=>{let observableResult=new ObservableResult_1.BatchObservableResultImpl,callPromise=Promise.resolve(callback(observableResult));timeoutMillis!=null&&(callPromise=(0,utils_1.callWithTimeout)(callPromise,timeoutMillis)),await callPromise,instruments.forEach(instrument=>{let buffer=observableResult._buffer.get(instrument);buffer!=null&&instrument._metricStorages.forEach(metricStorage=>{metricStorage.record(buffer,observationTime)})})})}_findCallback(callback,instrument){return this._callbacks.findIndex(record=>record.callback===callback&&record.instrument===instrument)}_findBatchCallback(callback,instruments){return this._batchCallbacks.findIndex(record=>record.callback===callback&&(0,utils_1.setEquals)(record.instruments,instruments))}}})),require_SyncMetricStorage=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SyncMetricStorage=void 0;let MetricStorage_1=require_MetricStorage(),DeltaMetricProcessor_1=require_DeltaMetricProcessor(),TemporalMetricProcessor_1=require_TemporalMetricProcessor();exports.SyncMetricStorage=class extends MetricStorage_1.MetricStorage{_attributesProcessor;_aggregationCardinalityLimit;_deltaMetricStorage;_temporalMetricStorage;constructor(instrumentDescriptor,aggregator,_attributesProcessor,collectorHandles,_aggregationCardinalityLimit){super(instrumentDescriptor),this._attributesProcessor=_attributesProcessor,this._aggregationCardinalityLimit=_aggregationCardinalityLimit,this._deltaMetricStorage=new DeltaMetricProcessor_1.DeltaMetricProcessor(aggregator,this._aggregationCardinalityLimit),this._temporalMetricStorage=new TemporalMetricProcessor_1.TemporalMetricProcessor(aggregator,collectorHandles)}record(value,attributes,context$1,recordTime){attributes=this._attributesProcessor.process(attributes,context$1),this._deltaMetricStorage.record(value,attributes,context$1,recordTime)}collect(collector,collectionTime){let accumulations=this._deltaMetricStorage.collect();return this._temporalMetricStorage.buildMetrics(collector,this._instrumentDescriptor,accumulations,collectionTime)}}})),require_AttributesProcessor=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.createDenyListAttributesProcessor=exports.createAllowListAttributesProcessor=exports.createMultiAttributesProcessor=exports.createNoopAttributesProcessor=void 0;var NoopAttributesProcessor=class{process(incoming,_context){return incoming}},MultiAttributesProcessor=class{_processors;constructor(_processors){this._processors=_processors}process(incoming,context$1){let filteredAttributes=incoming;for(let processor of this._processors)filteredAttributes=processor.process(filteredAttributes,context$1);return filteredAttributes}},AllowListProcessor=class{_allowedAttributeNames;constructor(_allowedAttributeNames){this._allowedAttributeNames=_allowedAttributeNames}process(incoming,_context){let filteredAttributes={};return Object.keys(incoming).filter(attributeName=>this._allowedAttributeNames.includes(attributeName)).forEach(attributeName=>filteredAttributes[attributeName]=incoming[attributeName]),filteredAttributes}},DenyListProcessor=class{_deniedAttributeNames;constructor(_deniedAttributeNames){this._deniedAttributeNames=_deniedAttributeNames}process(incoming,_context){let filteredAttributes={};return Object.keys(incoming).filter(attributeName=>!this._deniedAttributeNames.includes(attributeName)).forEach(attributeName=>filteredAttributes[attributeName]=incoming[attributeName]),filteredAttributes}};function createNoopAttributesProcessor(){return NOOP}exports.createNoopAttributesProcessor=createNoopAttributesProcessor;function createMultiAttributesProcessor(processors){return new MultiAttributesProcessor(processors)}exports.createMultiAttributesProcessor=createMultiAttributesProcessor;function createAllowListAttributesProcessor(attributeAllowList){return new AllowListProcessor(attributeAllowList)}exports.createAllowListAttributesProcessor=createAllowListAttributesProcessor;function createDenyListAttributesProcessor(attributeDenyList){return new DenyListProcessor(attributeDenyList)}exports.createDenyListAttributesProcessor=createDenyListAttributesProcessor;let NOOP=new NoopAttributesProcessor})),require_MeterSharedState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterSharedState=void 0;let InstrumentDescriptor_1=require_InstrumentDescriptor(),Meter_1=require_Meter(),utils_1=require_utils(),AsyncMetricStorage_1=require_AsyncMetricStorage(),MetricStorageRegistry_1=require_MetricStorageRegistry(),MultiWritableMetricStorage_1=require_MultiWritableMetricStorage(),ObservableRegistry_1=require_ObservableRegistry(),SyncMetricStorage_1=require_SyncMetricStorage(),AttributesProcessor_1=require_AttributesProcessor();exports.MeterSharedState=class{_meterProviderSharedState;_instrumentationScope;metricStorageRegistry=new MetricStorageRegistry_1.MetricStorageRegistry;observableRegistry=new ObservableRegistry_1.ObservableRegistry;meter;constructor(_meterProviderSharedState,_instrumentationScope){this._meterProviderSharedState=_meterProviderSharedState,this._instrumentationScope=_instrumentationScope,this.meter=new Meter_1.Meter(this)}registerMetricStorage(descriptor){let storages=this._registerMetricStorage(descriptor,SyncMetricStorage_1.SyncMetricStorage);return storages.length===1?storages[0]:new MultiWritableMetricStorage_1.MultiMetricStorage(storages)}registerAsyncMetricStorage(descriptor){return this._registerMetricStorage(descriptor,AsyncMetricStorage_1.AsyncMetricStorage)}async collect(collector,collectionTime,options){let errors=await this.observableRegistry.observe(collectionTime,options?.timeoutMillis),storages=this.metricStorageRegistry.getStorages(collector);if(storages.length===0)return null;let metricDataList=storages.map(metricStorage=>metricStorage.collect(collector,collectionTime)).filter(utils_1.isNotNullish);return metricDataList.length===0?{errors}:{scopeMetrics:{scope:this._instrumentationScope,metrics:metricDataList},errors}}_registerMetricStorage(descriptor,MetricStorageType){let storages=this._meterProviderSharedState.viewRegistry.findViews(descriptor,this._instrumentationScope).map(view=>{let viewDescriptor=(0,InstrumentDescriptor_1.createInstrumentDescriptorWithView)(view,descriptor),compatibleStorage=this.metricStorageRegistry.findOrUpdateCompatibleStorage(viewDescriptor);if(compatibleStorage!=null)return compatibleStorage;let viewStorage=new MetricStorageType(viewDescriptor,view.aggregation.createAggregator(viewDescriptor),view.attributesProcessor,this._meterProviderSharedState.metricCollectors,view.aggregationCardinalityLimit);return this.metricStorageRegistry.register(viewStorage),viewStorage});if(storages.length===0){let collectorStorages=this._meterProviderSharedState.selectAggregations(descriptor.type).map(([collector,aggregation])=>{let compatibleStorage=this.metricStorageRegistry.findOrUpdateCompatibleCollectorStorage(collector,descriptor);if(compatibleStorage!=null)return compatibleStorage;let aggregator=aggregation.createAggregator(descriptor),cardinalityLimit=collector.selectCardinalityLimit(descriptor.type),storage=new MetricStorageType(descriptor,aggregator,(0,AttributesProcessor_1.createNoopAttributesProcessor)(),[collector],cardinalityLimit);return this.metricStorageRegistry.registerForCollector(collector,storage),storage});storages=storages.concat(collectorStorages)}return storages}}})),require_MeterProviderSharedState=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterProviderSharedState=void 0;let utils_1=require_utils(),ViewRegistry_1=require_ViewRegistry(),MeterSharedState_1=require_MeterSharedState(),AggregationOption_1=require_AggregationOption();exports.MeterProviderSharedState=class{resource;viewRegistry=new ViewRegistry_1.ViewRegistry;metricCollectors=[];meterSharedStates=new Map;constructor(resource){this.resource=resource}getMeterSharedState(instrumentationScope){let id=(0,utils_1.instrumentationScopeId)(instrumentationScope),meterSharedState=this.meterSharedStates.get(id);return meterSharedState??(meterSharedState=new MeterSharedState_1.MeterSharedState(this,instrumentationScope),this.meterSharedStates.set(id,meterSharedState)),meterSharedState}selectAggregations(instrumentType){let result=[];for(let collector of this.metricCollectors)result.push([collector,(0,AggregationOption_1.toAggregation)(collector.selectAggregation(instrumentType))]);return result}}})),require_MetricCollector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MetricCollector=void 0;let core_1=require_src$8();exports.MetricCollector=class{_sharedState;_metricReader;constructor(_sharedState,_metricReader){this._sharedState=_sharedState,this._metricReader=_metricReader}async collect(options){let collectionTime=(0,core_1.millisToHrTime)(Date.now()),scopeMetrics=[],errors=[],meterCollectionPromises=Array.from(this._sharedState.meterSharedStates.values()).map(async meterSharedState=>{let current=await meterSharedState.collect(this,collectionTime,options);current?.scopeMetrics!=null&&scopeMetrics.push(current.scopeMetrics),current?.errors!=null&&errors.push(...current.errors)});return await Promise.all(meterCollectionPromises),{resourceMetrics:{resource:this._sharedState.resource,scopeMetrics},errors}}async forceFlush(options){await this._metricReader.forceFlush(options)}async shutdown(options){await this._metricReader.shutdown(options)}selectAggregationTemporality(instrumentType){return this._metricReader.selectAggregationTemporality(instrumentType)}selectAggregation(instrumentType){return this._metricReader.selectAggregation(instrumentType)}selectCardinalityLimit(instrumentType){return this._metricReader.selectCardinalityLimit?.(instrumentType)??2e3}}})),require_Predicate=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ExactPredicate=exports.PatternPredicate=void 0;let ESCAPE=/[\^$\\.+?()[\]{}|]/g;exports.PatternPredicate=class PatternPredicate{_matchAll;_regexp;constructor(pattern){pattern===`*`?(this._matchAll=!0,this._regexp=/.*/):(this._matchAll=!1,this._regexp=new RegExp(PatternPredicate.escapePattern(pattern)))}match(str){return this._matchAll?!0:this._regexp.test(str)}static escapePattern(pattern){return`^${pattern.replace(ESCAPE,`\\$&`).replace(`*`,`.*`)}$`}static hasWildcard(pattern){return pattern.includes(`*`)}},exports.ExactPredicate=class{_matchAll;_pattern;constructor(pattern){this._matchAll=pattern===void 0,this._pattern=pattern}match(str){return!!(this._matchAll||str===this._pattern)}}})),require_InstrumentSelector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.InstrumentSelector=void 0;let Predicate_1=require_Predicate();exports.InstrumentSelector=class{_nameFilter;_type;_unitFilter;constructor(criteria){this._nameFilter=new Predicate_1.PatternPredicate(criteria?.name??`*`),this._type=criteria?.type,this._unitFilter=new Predicate_1.ExactPredicate(criteria?.unit)}getType(){return this._type}getNameFilter(){return this._nameFilter}getUnitFilter(){return this._unitFilter}}})),require_MeterSelector=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterSelector=void 0;let Predicate_1=require_Predicate();exports.MeterSelector=class{_nameFilter;_versionFilter;_schemaUrlFilter;constructor(criteria){this._nameFilter=new Predicate_1.ExactPredicate(criteria?.name),this._versionFilter=new Predicate_1.ExactPredicate(criteria?.version),this._schemaUrlFilter=new Predicate_1.ExactPredicate(criteria?.schemaUrl)}getNameFilter(){return this._nameFilter}getVersionFilter(){return this._versionFilter}getSchemaUrlFilter(){return this._schemaUrlFilter}}})),require_View=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.View=void 0;let Predicate_1=require_Predicate(),AttributesProcessor_1=require_AttributesProcessor(),InstrumentSelector_1=require_InstrumentSelector(),MeterSelector_1=require_MeterSelector(),AggregationOption_1=require_AggregationOption();function isSelectorNotProvided(options){return options.instrumentName==null&&options.instrumentType==null&&options.instrumentUnit==null&&options.meterName==null&&options.meterVersion==null&&options.meterSchemaUrl==null}function validateViewOptions(viewOptions){if(isSelectorNotProvided(viewOptions))throw Error(`Cannot create view with no selector arguments supplied`);if(viewOptions.name!=null&&(viewOptions?.instrumentName==null||Predicate_1.PatternPredicate.hasWildcard(viewOptions.instrumentName)))throw Error(`Views with a specified name must be declared with an instrument selector that selects at most one instrument per meter.`)}exports.View=class{name;description;aggregation;attributesProcessor;instrumentSelector;meterSelector;aggregationCardinalityLimit;constructor(viewOptions){validateViewOptions(viewOptions),viewOptions.attributesProcessors==null?this.attributesProcessor=(0,AttributesProcessor_1.createNoopAttributesProcessor)():this.attributesProcessor=(0,AttributesProcessor_1.createMultiAttributesProcessor)(viewOptions.attributesProcessors),this.name=viewOptions.name,this.description=viewOptions.description,this.aggregation=(0,AggregationOption_1.toAggregation)(viewOptions.aggregation??{type:AggregationOption_1.AggregationType.DEFAULT}),this.instrumentSelector=new InstrumentSelector_1.InstrumentSelector({name:viewOptions.instrumentName,type:viewOptions.instrumentType,unit:viewOptions.instrumentUnit}),this.meterSelector=new MeterSelector_1.MeterSelector({name:viewOptions.meterName,version:viewOptions.meterVersion,schemaUrl:viewOptions.meterSchemaUrl}),this.aggregationCardinalityLimit=viewOptions.aggregationCardinalityLimit}}})),require_MeterProvider=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.MeterProvider=void 0;let api_1$1=__require(`@opentelemetry/api`),resources_1=__require(`@opentelemetry/resources`),MeterProviderSharedState_1=require_MeterProviderSharedState(),MetricCollector_1=require_MetricCollector(),View_1=require_View();exports.MeterProvider=class{_sharedState;_shutdown=!1;constructor(options){if(this._sharedState=new MeterProviderSharedState_1.MeterProviderSharedState(options?.resource??(0,resources_1.defaultResource)()),options?.views!=null&&options.views.length>0)for(let viewOption of options.views)this._sharedState.viewRegistry.addView(new View_1.View(viewOption));if(options?.readers!=null&&options.readers.length>0)for(let metricReader of options.readers){let collector=new MetricCollector_1.MetricCollector(this._sharedState,metricReader);metricReader.setMetricProducer(collector),this._sharedState.metricCollectors.push(collector)}}getMeter(name,version$1=``,options={}){return this._shutdown?(api_1$1.diag.warn(`A shutdown MeterProvider cannot provide a Meter`),(0,api_1$1.createNoopMeter)()):this._sharedState.getMeterSharedState({name,version:version$1,schemaUrl:options.schemaUrl}).meter}async shutdown(options){if(this._shutdown){api_1$1.diag.warn(`shutdown may only be called once per MeterProvider`);return}this._shutdown=!0,await Promise.all(this._sharedState.metricCollectors.map(collector=>collector.shutdown(options)))}async forceFlush(options){if(this._shutdown){api_1$1.diag.warn(`invalid attempt to force flush after MeterProvider shutdown`);return}await Promise.all(this._sharedState.metricCollectors.map(collector=>collector.forceFlush(options)))}}})),require_src$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TimeoutError=exports.createDenyListAttributesProcessor=exports.createAllowListAttributesProcessor=exports.AggregationType=exports.MeterProvider=exports.ConsoleMetricExporter=exports.InMemoryMetricExporter=exports.PeriodicExportingMetricReader=exports.MetricReader=exports.InstrumentType=exports.DataPointType=exports.AggregationTemporality=void 0;var AggregationTemporality_1=require_AggregationTemporality();Object.defineProperty(exports,`AggregationTemporality`,{enumerable:!0,get:function(){return AggregationTemporality_1.AggregationTemporality}});var MetricData_1=require_MetricData();Object.defineProperty(exports,`DataPointType`,{enumerable:!0,get:function(){return MetricData_1.DataPointType}}),Object.defineProperty(exports,`InstrumentType`,{enumerable:!0,get:function(){return MetricData_1.InstrumentType}});var MetricReader_1=require_MetricReader();Object.defineProperty(exports,`MetricReader`,{enumerable:!0,get:function(){return MetricReader_1.MetricReader}});var PeriodicExportingMetricReader_1=require_PeriodicExportingMetricReader();Object.defineProperty(exports,`PeriodicExportingMetricReader`,{enumerable:!0,get:function(){return PeriodicExportingMetricReader_1.PeriodicExportingMetricReader}});var InMemoryMetricExporter_1=require_InMemoryMetricExporter();Object.defineProperty(exports,`InMemoryMetricExporter`,{enumerable:!0,get:function(){return InMemoryMetricExporter_1.InMemoryMetricExporter}});var ConsoleMetricExporter_1=require_ConsoleMetricExporter();Object.defineProperty(exports,`ConsoleMetricExporter`,{enumerable:!0,get:function(){return ConsoleMetricExporter_1.ConsoleMetricExporter}});var MeterProvider_1=require_MeterProvider();Object.defineProperty(exports,`MeterProvider`,{enumerable:!0,get:function(){return MeterProvider_1.MeterProvider}});var AggregationOption_1=require_AggregationOption();Object.defineProperty(exports,`AggregationType`,{enumerable:!0,get:function(){return AggregationOption_1.AggregationType}});var AttributesProcessor_1=require_AttributesProcessor();Object.defineProperty(exports,`createAllowListAttributesProcessor`,{enumerable:!0,get:function(){return AttributesProcessor_1.createAllowListAttributesProcessor}}),Object.defineProperty(exports,`createDenyListAttributesProcessor`,{enumerable:!0,get:function(){return AttributesProcessor_1.createDenyListAttributesProcessor}});var utils_1=require_utils();Object.defineProperty(exports,`TimeoutError`,{enumerable:!0,get:function(){return utils_1.TimeoutError}})})),require_internal_types=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.EAggregationTemporality=void 0,(function(EAggregationTemporality){EAggregationTemporality[EAggregationTemporality.AGGREGATION_TEMPORALITY_UNSPECIFIED=0]=`AGGREGATION_TEMPORALITY_UNSPECIFIED`,EAggregationTemporality[EAggregationTemporality.AGGREGATION_TEMPORALITY_DELTA=1]=`AGGREGATION_TEMPORALITY_DELTA`,EAggregationTemporality[EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE=2]=`AGGREGATION_TEMPORALITY_CUMULATIVE`})(exports.EAggregationTemporality||={})})),require_internal$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.createExportMetricsServiceRequest=exports.toMetric=exports.toScopeMetrics=exports.toResourceMetrics=void 0;let api_1=__require(`@opentelemetry/api`),sdk_metrics_1=require_src$3(),internal_types_1=require_internal_types(),utils_1=require_utils$1(),internal_1=require_internal$3();function toResourceMetrics(resourceMetrics,options){let encoder=(0,utils_1.getOtlpEncoder)(options),processedResource=(0,internal_1.createResource)(resourceMetrics.resource);return{resource:processedResource,schemaUrl:processedResource.schemaUrl,scopeMetrics:toScopeMetrics(resourceMetrics.scopeMetrics,encoder)}}exports.toResourceMetrics=toResourceMetrics;function toScopeMetrics(scopeMetrics,encoder){return Array.from(scopeMetrics.map(metrics=>({scope:(0,internal_1.createInstrumentationScope)(metrics.scope),metrics:metrics.metrics.map(metricData=>toMetric(metricData,encoder)),schemaUrl:metrics.scope.schemaUrl})))}exports.toScopeMetrics=toScopeMetrics;function toMetric(metricData,encoder){let out={name:metricData.descriptor.name,description:metricData.descriptor.description,unit:metricData.descriptor.unit},aggregationTemporality=toAggregationTemporality(metricData.aggregationTemporality);switch(metricData.dataPointType){case sdk_metrics_1.DataPointType.SUM:out.sum={aggregationTemporality,isMonotonic:metricData.isMonotonic,dataPoints:toSingularDataPoints(metricData,encoder)};break;case sdk_metrics_1.DataPointType.GAUGE:out.gauge={dataPoints:toSingularDataPoints(metricData,encoder)};break;case sdk_metrics_1.DataPointType.HISTOGRAM:out.histogram={aggregationTemporality,dataPoints:toHistogramDataPoints(metricData,encoder)};break;case sdk_metrics_1.DataPointType.EXPONENTIAL_HISTOGRAM:out.exponentialHistogram={aggregationTemporality,dataPoints:toExponentialHistogramDataPoints(metricData,encoder)};break}return out}exports.toMetric=toMetric;function toSingularDataPoint(dataPoint,valueType,encoder){let out={attributes:(0,internal_1.toAttributes)(dataPoint.attributes),startTimeUnixNano:encoder.encodeHrTime(dataPoint.startTime),timeUnixNano:encoder.encodeHrTime(dataPoint.endTime)};switch(valueType){case api_1.ValueType.INT:out.asInt=dataPoint.value;break;case api_1.ValueType.DOUBLE:out.asDouble=dataPoint.value;break}return out}function toSingularDataPoints(metricData,encoder){return metricData.dataPoints.map(dataPoint=>toSingularDataPoint(dataPoint,metricData.descriptor.valueType,encoder))}function toHistogramDataPoints(metricData,encoder){return metricData.dataPoints.map(dataPoint=>{let histogram=dataPoint.value;return{attributes:(0,internal_1.toAttributes)(dataPoint.attributes),bucketCounts:histogram.buckets.counts,explicitBounds:histogram.buckets.boundaries,count:histogram.count,sum:histogram.sum,min:histogram.min,max:histogram.max,startTimeUnixNano:encoder.encodeHrTime(dataPoint.startTime),timeUnixNano:encoder.encodeHrTime(dataPoint.endTime)}})}function toExponentialHistogramDataPoints(metricData,encoder){return metricData.dataPoints.map(dataPoint=>{let histogram=dataPoint.value;return{attributes:(0,internal_1.toAttributes)(dataPoint.attributes),count:histogram.count,min:histogram.min,max:histogram.max,sum:histogram.sum,positive:{offset:histogram.positive.offset,bucketCounts:histogram.positive.bucketCounts},negative:{offset:histogram.negative.offset,bucketCounts:histogram.negative.bucketCounts},scale:histogram.scale,zeroCount:histogram.zeroCount,startTimeUnixNano:encoder.encodeHrTime(dataPoint.startTime),timeUnixNano:encoder.encodeHrTime(dataPoint.endTime)}})}function toAggregationTemporality(temporality){switch(temporality){case sdk_metrics_1.AggregationTemporality.DELTA:return internal_types_1.EAggregationTemporality.AGGREGATION_TEMPORALITY_DELTA;case sdk_metrics_1.AggregationTemporality.CUMULATIVE:return internal_types_1.EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE}}function createExportMetricsServiceRequest(resourceMetrics,options){return{resourceMetrics:resourceMetrics.map(metrics=>toResourceMetrics(metrics,options))}}exports.createExportMetricsServiceRequest=createExportMetricsServiceRequest})),require_metrics$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufMetricsSerializer=void 0;let root=require_root(),internal_1=require_internal$1(),metricsResponseType=root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse,metricsRequestType=root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;exports.ProtobufMetricsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportMetricsServiceRequest)([arg]);return metricsRequestType.encode(request).finish()},deserializeResponse:arg=>metricsResponseType.decode(arg)}})),require_protobuf$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufMetricsSerializer=void 0;var metrics_1=require_metrics$1();Object.defineProperty(exports,`ProtobufMetricsSerializer`,{enumerable:!0,get:function(){return metrics_1.ProtobufMetricsSerializer}})})),require_internal=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.createExportTraceServiceRequest=exports.toOtlpSpanEvent=exports.toOtlpLink=exports.sdkSpanToOtlpSpan=void 0;let internal_1=require_internal$3(),utils_1=require_utils$1(),SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK=256,SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK=512;function buildSpanFlagsFrom(traceFlags,isRemote){let flags=traceFlags&255|256;return isRemote&&(flags|=512),flags}function sdkSpanToOtlpSpan(span,encoder){let ctx=span.spanContext(),status=span.status,parentSpanId=span.parentSpanContext?.spanId?encoder.encodeSpanContext(span.parentSpanContext?.spanId):void 0;return{traceId:encoder.encodeSpanContext(ctx.traceId),spanId:encoder.encodeSpanContext(ctx.spanId),parentSpanId,traceState:ctx.traceState?.serialize(),name:span.name,kind:span.kind==null?0:span.kind+1,startTimeUnixNano:encoder.encodeHrTime(span.startTime),endTimeUnixNano:encoder.encodeHrTime(span.endTime),attributes:(0,internal_1.toAttributes)(span.attributes),droppedAttributesCount:span.droppedAttributesCount,events:span.events.map(event=>toOtlpSpanEvent(event,encoder)),droppedEventsCount:span.droppedEventsCount,status:{code:status.code,message:status.message},links:span.links.map(link=>toOtlpLink(link,encoder)),droppedLinksCount:span.droppedLinksCount,flags:buildSpanFlagsFrom(ctx.traceFlags,span.parentSpanContext?.isRemote)}}exports.sdkSpanToOtlpSpan=sdkSpanToOtlpSpan;function toOtlpLink(link,encoder){return{attributes:link.attributes?(0,internal_1.toAttributes)(link.attributes):[],spanId:encoder.encodeSpanContext(link.context.spanId),traceId:encoder.encodeSpanContext(link.context.traceId),traceState:link.context.traceState?.serialize(),droppedAttributesCount:link.droppedAttributesCount||0,flags:buildSpanFlagsFrom(link.context.traceFlags,link.context.isRemote)}}exports.toOtlpLink=toOtlpLink;function toOtlpSpanEvent(timedEvent,encoder){return{attributes:timedEvent.attributes?(0,internal_1.toAttributes)(timedEvent.attributes):[],name:timedEvent.name,timeUnixNano:encoder.encodeHrTime(timedEvent.time),droppedAttributesCount:timedEvent.droppedAttributesCount||0}}exports.toOtlpSpanEvent=toOtlpSpanEvent;function createExportTraceServiceRequest(spans,options){return{resourceSpans:spanRecordsToResourceSpans(spans,(0,utils_1.getOtlpEncoder)(options))}}exports.createExportTraceServiceRequest=createExportTraceServiceRequest;function createResourceMap(readableSpans){let resourceMap=new Map;for(let record of readableSpans){let ilsMap=resourceMap.get(record.resource);ilsMap||(ilsMap=new Map,resourceMap.set(record.resource,ilsMap));let instrumentationScopeKey=`${record.instrumentationScope.name}@${record.instrumentationScope.version||``}:${record.instrumentationScope.schemaUrl||``}`,records=ilsMap.get(instrumentationScopeKey);records||(records=[],ilsMap.set(instrumentationScopeKey,records)),records.push(record)}return resourceMap}function spanRecordsToResourceSpans(readableSpans,encoder){let resourceMap=createResourceMap(readableSpans),out=[],entryIterator=resourceMap.entries(),entry=entryIterator.next();for(;!entry.done;){let[resource,ilmMap]=entry.value,scopeResourceSpans=[],ilmIterator=ilmMap.values(),ilmEntry=ilmIterator.next();for(;!ilmEntry.done;){let scopeSpans=ilmEntry.value;if(scopeSpans.length>0){let spans=scopeSpans.map(readableSpan=>sdkSpanToOtlpSpan(readableSpan,encoder));scopeResourceSpans.push({scope:(0,internal_1.createInstrumentationScope)(scopeSpans[0].instrumentationScope),spans,schemaUrl:scopeSpans[0].instrumentationScope.schemaUrl})}ilmEntry=ilmIterator.next()}let processedResource=(0,internal_1.createResource)(resource),transformedSpans={resource:processedResource,scopeSpans:scopeResourceSpans,schemaUrl:processedResource.schemaUrl};out.push(transformedSpans),entry=entryIterator.next()}return out}})),require_trace$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufTraceSerializer=void 0;let root=require_root(),internal_1=require_internal(),traceResponseType=root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,traceRequestType=root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;exports.ProtobufTraceSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportTraceServiceRequest)(arg);return traceRequestType.encode(request).finish()},deserializeResponse:arg=>traceResponseType.decode(arg)}})),require_protobuf=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.ProtobufTraceSerializer=void 0;var trace_1=require_trace$1();Object.defineProperty(exports,`ProtobufTraceSerializer`,{enumerable:!0,get:function(){return trace_1.ProtobufTraceSerializer}})})),require_logs=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonLogsSerializer=void 0;let internal_1=require_internal$2();exports.JsonLogsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportLogsServiceRequest)(arg,{useHex:!0,useLongBits:!1});return new TextEncoder().encode(JSON.stringify(request))},deserializeResponse:arg=>{if(arg.length===0)return{};let decoder=new TextDecoder;return JSON.parse(decoder.decode(arg))}}})),require_json$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonLogsSerializer=void 0;var logs_1=require_logs();Object.defineProperty(exports,`JsonLogsSerializer`,{enumerable:!0,get:function(){return logs_1.JsonLogsSerializer}})})),require_metrics=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonMetricsSerializer=void 0;let internal_1=require_internal$1();exports.JsonMetricsSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportMetricsServiceRequest)([arg],{useLongBits:!1});return new TextEncoder().encode(JSON.stringify(request))},deserializeResponse:arg=>{if(arg.length===0)return{};let decoder=new TextDecoder;return JSON.parse(decoder.decode(arg))}}})),require_json$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonMetricsSerializer=void 0;var metrics_1=require_metrics();Object.defineProperty(exports,`JsonMetricsSerializer`,{enumerable:!0,get:function(){return metrics_1.JsonMetricsSerializer}})})),require_trace=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonTraceSerializer=void 0;let internal_1=require_internal();exports.JsonTraceSerializer={serializeRequest:arg=>{let request=(0,internal_1.createExportTraceServiceRequest)(arg,{useHex:!0,useLongBits:!1});return new TextEncoder().encode(JSON.stringify(request))},deserializeResponse:arg=>{if(arg.length===0)return{};let decoder=new TextDecoder;return JSON.parse(decoder.decode(arg))}}})),require_json=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonTraceSerializer=void 0;var trace_1=require_trace();Object.defineProperty(exports,`JsonTraceSerializer`,{enumerable:!0,get:function(){return trace_1.JsonTraceSerializer}})})),require_src$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.JsonTraceSerializer=exports.JsonMetricsSerializer=exports.JsonLogsSerializer=exports.ProtobufTraceSerializer=exports.ProtobufMetricsSerializer=exports.ProtobufLogsSerializer=void 0;var protobuf_1=require_protobuf$2();Object.defineProperty(exports,`ProtobufLogsSerializer`,{enumerable:!0,get:function(){return protobuf_1.ProtobufLogsSerializer}});var protobuf_2=require_protobuf$1();Object.defineProperty(exports,`ProtobufMetricsSerializer`,{enumerable:!0,get:function(){return protobuf_2.ProtobufMetricsSerializer}});var protobuf_3=require_protobuf();Object.defineProperty(exports,`ProtobufTraceSerializer`,{enumerable:!0,get:function(){return protobuf_3.ProtobufTraceSerializer}});var json_1=require_json$2();Object.defineProperty(exports,`JsonLogsSerializer`,{enumerable:!0,get:function(){return json_1.JsonLogsSerializer}});var json_2=require_json$1();Object.defineProperty(exports,`JsonMetricsSerializer`,{enumerable:!0,get:function(){return json_2.JsonMetricsSerializer}});var json_3=require_json();Object.defineProperty(exports,`JsonTraceSerializer`,{enumerable:!0,get:function(){return json_3.JsonTraceSerializer}})}));function validateAndNormalizeHeaders(partialHeaders){let headers={};return Object.entries(partialHeaders??{}).forEach(([key,value])=>{value===void 0?diag.warn(`Header "${key}" has invalid value (${value}) and will be ignored`):headers[key]=String(value)}),headers}var init_util=__esmMin((()=>{}));function mergeHeaders(userProvidedHeaders,fallbackHeaders,defaultHeaders){return async()=>{let requiredHeaders={...await defaultHeaders()},headers={};return fallbackHeaders!=null&&Object.assign(headers,await fallbackHeaders()),userProvidedHeaders!=null&&Object.assign(headers,validateAndNormalizeHeaders(await userProvidedHeaders())),Object.assign(headers,requiredHeaders)}}function validateUserProvidedUrl(url$1){if(url$1!=null)try{let base=globalThis.location?.href;return new URL(url$1,base).href}catch{throw Error(`Configuration: Could not parse user-provided export URL: '${url$1}'`)}}function mergeOtlpHttpConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration){return{...mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration),headers:mergeHeaders(userProvidedConfiguration.headers,fallbackConfiguration.headers,defaultConfiguration.headers),url:validateUserProvidedUrl(userProvidedConfiguration.url)??fallbackConfiguration.url??defaultConfiguration.url}}function getHttpConfigurationDefaults(requiredHeaders,signalResourcePath){return{...getSharedConfigurationDefaults(),headers:async()=>requiredHeaders,url:`http://localhost:4318/`+signalResourcePath}}var init_otlp_http_configuration=__esmMin((()=>{init_shared_configuration(),init_util()}));function httpAgentFactoryFromOptions(options){return async protocol=>{let isInsecure=protocol===`http:`,{Agent}=await(isInsecure?import(`http`):import(`https`));if(isInsecure){let{ca,cert,key,...insecureOptions}=options;return new Agent(insecureOptions)}return new Agent(options)}}function mergeOtlpNodeHttpConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration){return{...mergeOtlpHttpConfigurationWithDefaults(userProvidedConfiguration,fallbackConfiguration,defaultConfiguration),agentFactory:userProvidedConfiguration.agentFactory??fallbackConfiguration.agentFactory??defaultConfiguration.agentFactory,userAgent:userProvidedConfiguration.userAgent}}function getNodeHttpConfigurationDefaults(requiredHeaders,signalResourcePath){return{...getHttpConfigurationDefaults(requiredHeaders,signalResourcePath),agentFactory:httpAgentFactoryFromOptions({keepAlive:!0})}}var init_otlp_node_http_configuration=__esmMin((()=>{init_otlp_http_configuration()}));function isExportRetryable(statusCode){return[429,502,503,504].includes(statusCode)}function parseRetryAfterToMills(retryAfter){if(retryAfter==null)return;let seconds=Number.parseInt(retryAfter,10);if(Number.isInteger(seconds))return seconds>0?seconds*1e3:-1;let delay=new Date(retryAfter).getTime()-Date.now();return delay>=0?delay:0}var init_is_export_retryable=__esmMin((()=>{})),VERSION,init_version=__esmMin((()=>{VERSION=`0.208.0`}));function sendWithHttp(request,url$1,headers,compression,userAgent,agent,data,onDone,timeoutMillis){let parsedUrl=new URL(url$1);userAgent?headers[`User-Agent`]=`${userAgent} ${DEFAULT_USER_AGENT}`:headers[`User-Agent`]=DEFAULT_USER_AGENT;let req=request({hostname:parsedUrl.hostname,port:parsedUrl.port,path:parsedUrl.pathname,method:`POST`,headers,agent},res=>{let responseData=[];res.on(`data`,chunk=>responseData.push(chunk)),res.on(`end`,()=>{res.statusCode&&res.statusCode<299?onDone({status:`success`,data:Buffer.concat(responseData)}):res.statusCode&&isExportRetryable(res.statusCode)?onDone({status:`retryable`,retryInMillis:parseRetryAfterToMills(res.headers[`retry-after`])}):onDone({status:`failure`,error:new OTLPExporterError(res.statusMessage,res.statusCode,Buffer.concat(responseData).toString())})})});req.setTimeout(timeoutMillis,()=>{req.destroy(),onDone({status:`failure`,error:Error(`Request Timeout`)})}),req.on(`error`,error=>{onDone({status:`failure`,error})}),compressAndSend(req,compression,data,error=>{onDone({status:`failure`,error})})}function compressAndSend(req,compression,data,onError){let dataStream=readableFromUint8Array(data);compression===`gzip`&&(req.setHeader(`Content-Encoding`,`gzip`),dataStream=dataStream.on(`error`,onError).pipe(zlib.createGzip()).on(`error`,onError)),dataStream.pipe(req).on(`error`,onError)}function readableFromUint8Array(buff){let readable=new Readable;return readable.push(buff),readable.push(null),readable}var DEFAULT_USER_AGENT,init_http_transport_utils=__esmMin((()=>{init_is_export_retryable(),init_types(),init_version(),DEFAULT_USER_AGENT=`OTel-OTLP-Exporter-JavaScript/${VERSION}`}));async function requestFunctionFactory(protocol){let{request}=await(protocol===`http:`?import(`http`):import(`https`));return request}function createHttpExporterTransport(parameters){return new HttpExporterTransport(parameters)}var HttpExporterTransport,init_http_exporter_transport=__esmMin((()=>{init_http_transport_utils(),HttpExporterTransport=class{_parameters;_utils=null;constructor(_parameters){this._parameters=_parameters}async send(data,timeoutMillis){let{agent,request}=await this._loadUtils(),headers=await this._parameters.headers();return new Promise(resolve$1=>{sendWithHttp(request,this._parameters.url,headers,this._parameters.compression,this._parameters.userAgent,agent,data,result=>{resolve$1(result)},timeoutMillis)})}shutdown(){}async _loadUtils(){let utils=this._utils;if(utils===null){let protocol=new URL(this._parameters.url).protocol,[agent,request]=await Promise.all([this._parameters.agentFactory(protocol),requestFunctionFactory(protocol)]);utils=this._utils={agent,request}}return utils}}}));function getJitter(){return 2*JITTER*Math.random()-JITTER}function createRetryingTransport(options){return new RetryingTransport(options.transport)}var MAX_ATTEMPTS,INITIAL_BACKOFF,MAX_BACKOFF,BACKOFF_MULTIPLIER,JITTER,RetryingTransport,init_retrying_transport=__esmMin((()=>{MAX_ATTEMPTS=5,INITIAL_BACKOFF=1e3,MAX_BACKOFF=5e3,BACKOFF_MULTIPLIER=1.5,JITTER=.2,RetryingTransport=class{_transport;constructor(_transport){this._transport=_transport}retry(data,timeoutMillis,inMillis){return new Promise((resolve$1,reject)=>{setTimeout(()=>{this._transport.send(data,timeoutMillis).then(resolve$1,reject)},inMillis)})}async send(data,timeoutMillis){let deadline=Date.now()+timeoutMillis,result=await this._transport.send(data,timeoutMillis),attempts=MAX_ATTEMPTS,nextBackoff=INITIAL_BACKOFF;for(;result.status===`retryable`&&attempts>0;){attempts--;let backoff=Math.max(Math.min(nextBackoff,MAX_BACKOFF)+getJitter(),0);nextBackoff*=BACKOFF_MULTIPLIER;let retryInMillis=result.retryInMillis??backoff,remainingTimeoutMillis=deadline-Date.now();if(retryInMillis>remainingTimeoutMillis)return result;result=await this.retry(data,remainingTimeoutMillis,retryInMillis)}return result}shutdown(){return this._transport.shutdown()}}}));function createOtlpHttpExportDelegate(options,serializer){return createOtlpExportDelegate({transport:createRetryingTransport({transport:createHttpExporterTransport(options)}),serializer,promiseHandler:createBoundedQueueExportPromiseHandler(options)},{timeout:options.timeoutMillis})}var init_otlp_http_export_delegate=__esmMin((()=>{init_otlp_export_delegate(),init_http_exporter_transport(),init_bounded_queue_export_promise_handler(),init_retrying_transport()}));function parseAndValidateTimeoutFromEnv(timeoutEnvVar){let envTimeout=(0,import_src$1.getNumberFromEnv)(timeoutEnvVar);if(envTimeout!=null){if(Number.isFinite(envTimeout)&&envTimeout>0)return envTimeout;diag.warn(`Configuration: ${timeoutEnvVar} is invalid, expected number greater than 0 (actual: ${envTimeout})`)}}function getTimeoutFromEnv(signalIdentifier){let specificTimeout=parseAndValidateTimeoutFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_TIMEOUT`),nonSpecificTimeout=parseAndValidateTimeoutFromEnv(`OTEL_EXPORTER_OTLP_TIMEOUT`);return specificTimeout??nonSpecificTimeout}function parseAndValidateCompressionFromEnv(compressionEnvVar){let compression=(0,import_src$1.getStringFromEnv)(compressionEnvVar)?.trim();if(compression==null||compression===`none`||compression===`gzip`)return compression;diag.warn(`Configuration: ${compressionEnvVar} is invalid, expected 'none' or 'gzip' (actual: '${compression}')`)}function getCompressionFromEnv(signalIdentifier){let specificCompression=parseAndValidateCompressionFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_COMPRESSION`),nonSpecificCompression=parseAndValidateCompressionFromEnv(`OTEL_EXPORTER_OTLP_COMPRESSION`);return specificCompression??nonSpecificCompression}function getSharedConfigurationFromEnvironment(signalIdentifier){return{timeoutMillis:getTimeoutFromEnv(signalIdentifier),compression:getCompressionFromEnv(signalIdentifier)}}var import_src$1,init_shared_env_configuration=__esmMin((()=>{import_src$1=require_src$8()}));function getStaticHeadersFromEnv(signalIdentifier){let signalSpecificRawHeaders=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_${signalIdentifier}_HEADERS`),nonSignalSpecificRawHeaders=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_HEADERS`),signalSpecificHeaders=(0,import_src.parseKeyPairsIntoRecord)(signalSpecificRawHeaders),nonSignalSpecificHeaders=(0,import_src.parseKeyPairsIntoRecord)(nonSignalSpecificRawHeaders);if(!(Object.keys(signalSpecificHeaders).length===0&&Object.keys(nonSignalSpecificHeaders).length===0))return Object.assign({},(0,import_src.parseKeyPairsIntoRecord)(nonSignalSpecificRawHeaders),(0,import_src.parseKeyPairsIntoRecord)(signalSpecificRawHeaders))}function appendRootPathToUrlIfNeeded(url$1){try{return new URL(url$1).toString()}catch{diag.warn(`Configuration: Could not parse environment-provided export URL: '${url$1}', falling back to undefined`);return}}function appendResourcePathToUrl(url$1,path$2){try{new URL(url$1)}catch{diag.warn(`Configuration: Could not parse environment-provided export URL: '${url$1}', falling back to undefined`);return}url$1.endsWith(`/`)||(url$1+=`/`),url$1+=path$2;try{new URL(url$1)}catch{diag.warn(`Configuration: Provided URL appended with '${path$2}' is not a valid URL, using 'undefined' instead of '${url$1}'`);return}return url$1}function getNonSpecificUrlFromEnv(signalResourcePath){let envUrl=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_ENDPOINT`);if(envUrl!==void 0)return appendResourcePathToUrl(envUrl,signalResourcePath)}function getSpecificUrlFromEnv(signalIdentifier){let envUrl=(0,import_src.getStringFromEnv)(`OTEL_EXPORTER_OTLP_${signalIdentifier}_ENDPOINT`);if(envUrl!==void 0)return appendRootPathToUrlIfNeeded(envUrl)}function readFileFromEnv(signalSpecificEnvVar,nonSignalSpecificEnvVar,warningMessage){let signalSpecificPath=(0,import_src.getStringFromEnv)(signalSpecificEnvVar),nonSignalSpecificPath=(0,import_src.getStringFromEnv)(nonSignalSpecificEnvVar),filePath=signalSpecificPath??nonSignalSpecificPath;if(filePath!=null)try{return fs$2.readFileSync(path$1.resolve(process.cwd(),filePath))}catch{diag.warn(warningMessage);return}else return}function getClientCertificateFromEnv(signalIdentifier){return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CLIENT_CERTIFICATE`,`OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`,`Failed to read client certificate chain file`)}function getClientKeyFromEnv(signalIdentifier){return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CLIENT_KEY`,`OTEL_EXPORTER_OTLP_CLIENT_KEY`,`Failed to read client certificate private key file`)}function getRootCertificateFromEnv(signalIdentifier){return readFileFromEnv(`OTEL_EXPORTER_OTLP_${signalIdentifier}_CERTIFICATE`,`OTEL_EXPORTER_OTLP_CERTIFICATE`,`Failed to read root certificate file`)}function getNodeHttpConfigurationFromEnvironment(signalIdentifier,signalResourcePath){return{...getSharedConfigurationFromEnvironment(signalIdentifier),url:getSpecificUrlFromEnv(signalIdentifier)??getNonSpecificUrlFromEnv(signalResourcePath),headers:wrapStaticHeadersInFunction(getStaticHeadersFromEnv(signalIdentifier)),agentFactory:httpAgentFactoryFromOptions({keepAlive:!0,ca:getRootCertificateFromEnv(signalIdentifier),cert:getClientCertificateFromEnv(signalIdentifier),key:getClientKeyFromEnv(signalIdentifier)})}}var import_src,init_otlp_node_http_env_configuration=__esmMin((()=>{import_src=require_src$8(),init_shared_env_configuration(),init_shared_configuration(),init_otlp_node_http_configuration()}));function convertLegacyHeaders(config){return typeof config.headers==`function`?config.headers:wrapStaticHeadersInFunction(config.headers)}var init_convert_legacy_http_options=__esmMin((()=>{init_shared_configuration()}));function convertLegacyAgentOptions(config){if(typeof config.httpAgentOptions==`function`)return config.httpAgentOptions;let legacy=config.httpAgentOptions;if(config.keepAlive!=null&&(legacy={keepAlive:config.keepAlive,...legacy}),legacy!=null)return httpAgentFactoryFromOptions(legacy)}function convertLegacyHttpOptions(config,signalIdentifier,signalResourcePath,requiredHeaders){return config.metadata&&diag.warn(`Metadata cannot be set when using http`),mergeOtlpNodeHttpConfigurationWithDefaults({url:config.url,headers:convertLegacyHeaders(config),concurrencyLimit:config.concurrencyLimit,timeoutMillis:config.timeoutMillis,compression:config.compression,agentFactory:convertLegacyAgentOptions(config),userAgent:config.userAgent},getNodeHttpConfigurationFromEnvironment(signalIdentifier,signalResourcePath),getNodeHttpConfigurationDefaults(requiredHeaders,signalResourcePath))}var init_convert_legacy_node_http_options=__esmMin((()=>{init_otlp_node_http_configuration(),init_index_node_http(),init_otlp_node_http_env_configuration(),init_convert_legacy_http_options()})),index_node_http_exports=__export({convertLegacyHttpOptions:()=>convertLegacyHttpOptions,createOtlpHttpExportDelegate:()=>createOtlpHttpExportDelegate,getSharedConfigurationFromEnvironment:()=>getSharedConfigurationFromEnvironment,httpAgentFactoryFromOptions:()=>httpAgentFactoryFromOptions}),init_index_node_http=__esmMin((()=>{init_otlp_node_http_configuration(),init_otlp_http_export_delegate(),init_shared_env_configuration(),init_convert_legacy_node_http_options()})),require_OTLPTraceExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;let otlp_exporter_base_1=(init_esm(),__toCommonJS(esm_exports)),otlp_transformer_1=require_src$2(),node_http_1=(init_index_node_http(),__toCommonJS(index_node_http_exports));exports.OTLPTraceExporter=class extends otlp_exporter_base_1.OTLPExporterBase{constructor(config={}){super((0,node_http_1.createOtlpHttpExportDelegate)((0,node_http_1.convertLegacyHttpOptions)(config,`TRACES`,`v1/traces`,{"Content-Type":`application/x-protobuf`}),otlp_transformer_1.ProtobufTraceSerializer))}}})),require_node$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;var OTLPTraceExporter_1=require_OTLPTraceExporter();Object.defineProperty(exports,`OTLPTraceExporter`,{enumerable:!0,get:function(){return OTLPTraceExporter_1.OTLPTraceExporter}})})),require_platform$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;var node_1=require_node$1();Object.defineProperty(exports,`OTLPTraceExporter`,{enumerable:!0,get:function(){return node_1.OTLPTraceExporter}})})),require_src$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPTraceExporter=void 0;var platform_1=require_platform$1();Object.defineProperty(exports,`OTLPTraceExporter`,{enumerable:!0,get:function(){return platform_1.OTLPTraceExporter}})})),require_OTLPLogExporter=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;let otlp_exporter_base_1=(init_esm(),__toCommonJS(esm_exports)),otlp_transformer_1=require_src$2(),node_http_1=(init_index_node_http(),__toCommonJS(index_node_http_exports));exports.OTLPLogExporter=class extends otlp_exporter_base_1.OTLPExporterBase{constructor(config={}){super((0,node_http_1.createOtlpHttpExportDelegate)((0,node_http_1.convertLegacyHttpOptions)(config,`LOGS`,`v1/logs`,{"Content-Type":`application/x-protobuf`}),otlp_transformer_1.ProtobufLogsSerializer))}}})),require_node=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;var OTLPLogExporter_1=require_OTLPLogExporter();Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return OTLPLogExporter_1.OTLPLogExporter}})})),require_platform=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;var node_1=require_node();Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return node_1.OTLPLogExporter}})})),require_src=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.OTLPLogExporter=void 0;var platform_1=require_platform();Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return platform_1.OTLPLogExporter}})})),require_exporters=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TelemetryExporter=void 0;let utils_1=require_utils$3();function isTraceSignal(signal){return`kind`in signal}function isLogSignal(signal){return`severityText`in signal&&`severityNumber`in signal}exports.TelemetryExporter=class{tracesExporters=[];logsExporters=[];constructor(config){if(!utils_1.globalParams.enableOTLP)return;let{OTLPTraceExporter:OTLPTraceExporter$1}=require_src$1(),{OTLPLogExporter}=require_src(),tracesSet=new Set(config.tracesEndpoint);for(let endpoint of tracesSet)this.tracesExporters.push(new OTLPTraceExporter$1({url:endpoint})),console.log(`Traces will be exported to ${endpoint}`);let logsSet=new Set(config.logsEndpoint);for(let endpoint of logsSet)this.logsExporters.push(new OTLPLogExporter({url:endpoint})),console.log(`Logs will be exported to ${endpoint}`)}async export(signals){if(!utils_1.globalParams.enableOTLP)return;let{ExportResultCode:ExportResultCode$1}=require_src$8(),exportSpans=[],exportLogs=[];signals.forEach(signal=>{isTraceSignal(signal)&&exportSpans.push(signal),isLogSignal(signal)&&exportLogs.push(signal)});let tasks=[];if(exportSpans.length>0&&this.tracesExporters.length>0){let traceExportTask=new Promise(resolve$1=>{let exportCallback=results=>{results.code!==ExportResultCode$1.SUCCESS&&(console.warn(`Trace export failed: ${results.code}`),console.warn(results)),resolve$1()};for(let exporter of this.tracesExporters)exporter.export(exportSpans,exportCallback)});tasks.push(traceExportTask)}if(exportLogs.length>0&&this.logsExporters.length>0){let logExportTask=new Promise(resolve$1=>{let exportCallback=results=>{results.code!==ExportResultCode$1.SUCCESS&&(console.warn(`Log export failed: ${results.code}`),console.warn(results)),resolve$1()};for(let exporter of this.logsExporters)exporter.export(exportLogs,exportCallback)});tasks.push(logExportTask)}await Promise.all(tasks)}async flush(){if(utils_1.globalParams.enableOTLP){for(let exporter of this.tracesExporters)await exporter.forceFlush();for(let exporter of this.logsExporters)await exporter.forceFlush()}}}})),require_dbos_executor=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||(`get`in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,`default`,{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!==`default`&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DBOSExecutor=exports.TempWorkflowType=exports.OperationType=exports.DBOS_QUEUE_MAX_PRIORITY=exports.DBOS_QUEUE_MIN_PRIORITY=void 0;let error_1=require_error(),workflow_1=require_workflow(),collector_1=require_collector(),traces_1=require_traces(),logs_1=require_logs$2(),exporters_1=require_exporters(),system_database_1=require_system_database(),node_crypto_1=__require(`node:crypto`),decorators_1=require_decorators(),context_1=require_context(),serialize_error_1=require_serialize_error(),utils_1=require_utils$3(),_1=require_src$4(),wfqueue_1=require_wfqueue(),debugpoint_1=require_debugpoint(),scheduler_1=require_scheduler(),crypto$1=__importStar(__require(`crypto`)),workflow_management_1=require_workflow_management(),database_utils_1=require_database_utils(),debouncer_1=require_debouncer(),dbosNull={};exports.DBOS_QUEUE_MIN_PRIORITY=1,exports.DBOS_QUEUE_MAX_PRIORITY=2**31-1,exports.OperationType={HANDLER:`handler`,WORKFLOW:`workflow`,TRANSACTION:`transaction`,STEP:`step`},exports.TempWorkflowType={step:`step`,send:`send`},exports.DBOSExecutor=class DBOSExecutor{config;initialized;systemDatabase;static#e=`temp_workflow`;telemetryCollector;static defaultNotificationTimeoutSec=60;#t;systemDBSchemaName;logger;ctxLogger;tracer;#n=void 0;executorID=utils_1.globalParams.executorID;static globalInstance=void 0;constructor(config,{systemDatabase,debugMode}={}){if(this.config=config,this.#t=debugMode??!1,this.systemDBSchemaName=config.systemDatabaseSchemaName,config.telemetry.OTLPExporter){let OTLPExporter=new exporters_1.TelemetryExporter(config.telemetry.OTLPExporter);this.telemetryCollector=new collector_1.TelemetryCollector(OTLPExporter)}else this.telemetryCollector=new collector_1.TelemetryCollector;this.logger=new logs_1.GlobalLogger(this.telemetryCollector,this.config.telemetry.logs,this.appName),this.ctxLogger=new logs_1.DBOSContextualLogger(this.logger,()=>(0,traces_1.getActiveSpan)()),this.tracer=new traces_1.Tracer(this.telemetryCollector,this.appName),this.#t&&this.logger.info(`Running in debug mode!`),systemDatabase?(this.logger.debug(`Using provided system database`),this.systemDatabase=systemDatabase):(this.logger.debug(`Using Postgres system database`),this.systemDatabase=new system_database_1.PostgresSystemDatabase(this.config.systemDatabaseUrl,this.logger,this.config.sysDbPoolSize,this.config.systemDatabasePool,this.systemDBSchemaName)),new scheduler_1.ScheduledReceiver,this.initialized=!1,DBOSExecutor.globalInstance=this}get appName(){return this.config.name}async init(){if(this.initialized){this.logger.error(`Workflow executor already initialized!`);return}try{await this.systemDatabase.init(this.#t)}catch(err){if(err instanceof error_1.DBOSInitializationError)throw err;this.logger.error(err);let message=`Failed to initialize workflow executor: `;if(err instanceof AggregateError)for(let error of err.errors)message+=`${error.message}; `;else err instanceof Error?message+=err.message:message+=String(err);throw new error_1.DBOSInitializationError(message,err instanceof Error?err:void 0)}if(this.initialized=!0,!this.#t){utils_1.globalParams.appVersion===``&&(utils_1.globalParams.appVersion=this.computeAppVersion(),utils_1.globalParams.wasComputed=!0);let classnames=(0,decorators_1.getAllRegisteredClassNames)();for(let cls of classnames){let creg=(0,decorators_1.getClassRegistrationByName)(cls);for(let[_cfgname,cfg]of creg.configuredInstances)await cfg.initialize()}this.logger.info(`Initializing DBOS (v${utils_1.globalParams.dbosVersion})`),this.logger.info(`System Database URL: ${(0,database_utils_1.maskDatabaseUrl)(this.config.systemDatabaseUrl)}`),this.logger.info(`Executor ID: ${this.executorID}`),this.logger.info(`Application version: ${utils_1.globalParams.appVersion}`),await this.recoverPendingWorkflows([this.executorID])}this.logger.info(`DBOS launched!`)}async destroy(){try{await this.systemDatabase.awaitRunningWorkflows(),await this.systemDatabase.destroy(),await this.logger.destroy(),DBOSExecutor.globalInstance===this&&(DBOSExecutor.globalInstance=void 0)}catch(err){let e=err;throw this.logger.error(e),err}}#r(wf){return{methReg:(0,decorators_1.getFunctionRegistrationByName)(wf.workflowClassName,wf.workflowName),configuredInst:(0,decorators_1.getConfiguredInstance)(wf.workflowClassName,wf.workflowConfigName)}}static reviveResultOrError(r,success){if(success===!0||!r.error)return utils_1.DBOSJSON.parse(r.output??null);throw(0,serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(r.error))}async workflow(wf,params,...args){return this.internalWorkflow(wf,params,void 0,void 0,...args)}async internalWorkflow(wf,params,callerID,callerFunctionID,...args){let workflowID=params.workflowUUID?params.workflowUUID:(0,node_crypto_1.randomUUID)(),presetID=!!params.workflowUUID,timeoutMS=params.timeoutMS??void 0,deadlineEpochMS=params.timeoutMS?params.queueName?void 0:Date.now()+params.timeoutMS:params.deadlineEpochMS,priority=params?.enqueueOptions?.priority;if(priority!==void 0&&(priority<exports.DBOS_QUEUE_MIN_PRIORITY||priority>exports.DBOS_QUEUE_MAX_PRIORITY))throw new error_1.DBOSInvalidQueuePriorityError(priority,exports.DBOS_QUEUE_MIN_PRIORITY,exports.DBOS_QUEUE_MAX_PRIORITY);if(params.queueName&&!this.getQueueByName(params.queueName).priorityEnabled&&priority!==void 0)throw Error(`Priority is not enabled for queue ${params.queueName}. Setting priority will not have any effect.`);let pctx={...(0,context_1.getCurrentContextStore)()},wConfig={},wInfo=(0,decorators_1.getFunctionRegistration)(wf),wfname=(0,decorators_1.getRegisteredFunctionFullName)(wf).name,wfclassname=(0,decorators_1.getRegisteredFunctionClassName)(wf),isTempWorkflow=DBOSExecutor.#e===wfname||!!params.tempWfType;if(isTempWorkflow)params.tempWfName&&(wfname=params.tempWfName,wfclassname=params.tempWfClass??``);else{if(!wInfo||!wInfo.workflowConfig)throw new error_1.DBOSNotRegisteredError(wf.name);wConfig=wInfo.workflowConfig}let maxRecoveryAttempts=wConfig.maxRecoveryAttempts?wConfig.maxRecoveryAttempts:workflow_1.DEFAULT_MAX_RECOVERY_ATTEMPTS,span=this.tracer.startSpan(wfname,{status:workflow_1.StatusString.PENDING,operationUUID:workflowID,operationType:exports.OperationType.WORKFLOW,operationName:wInfo?.name??wf.name,authenticatedUser:pctx?.authenticatedUser??``,authenticatedRoles:pctx?.authenticatedRoles??[],assumedRole:pctx?.assumedRole??``}),funcArgs=(0,utils_1.serializeFunctionInputOutput)(args,[wfname,`<arguments>`]);args=funcArgs.deserialized;let internalStatus={workflowUUID:workflowID,status:params.queueName===void 0?workflow_1.StatusString.PENDING:workflow_1.StatusString.ENQUEUED,workflowName:wfname,workflowClassName:wfclassname,workflowConfigName:params.configuredInstance?.name||``,queueName:params.queueName,output:null,error:null,authenticatedUser:pctx?.authenticatedUser||``,assumedRole:pctx?.assumedRole||``,authenticatedRoles:pctx?.authenticatedRoles||[],request:pctx?.request||{},executorId:utils_1.globalParams.executorID,applicationVersion:utils_1.globalParams.appVersion,applicationID:utils_1.globalParams.appID,createdAt:Date.now(),timeoutMS,deadlineEpochMS,input:funcArgs.stringified,deduplicationID:params.enqueueOptions?.deduplicationID,priority:priority??0,queuePartitionKey:params.enqueueOptions?.queuePartitionKey};isTempWorkflow&&(internalStatus.workflowName=`${DBOSExecutor.#e}-${params.tempWfType}-${params.tempWfName}`);let $deadlineEpochMS,shouldExecute;if(this.#t){let wfStatus=await this.systemDatabase.getWorkflowStatus(workflowID);if(!wfStatus)throw new error_1.DBOSDebuggerError(`Failed to find inputs for workflow UUID ${workflowID}`);if(funcArgs.stringified!==wfStatus.input)throw new error_1.DBOSDebuggerError(`Detected different inputs for workflow UUID ${workflowID}.\n Received: ${funcArgs.stringified}\n Original: ${wfStatus.input}`)}else{if(callerFunctionID!==void 0&&callerID!==void 0){let result=await this.systemDatabase.getOperationResultAndThrowIfCancelled(callerID,callerFunctionID);if(result){if(result.error)throw(0,serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(result.error));return new workflow_1.RetrievedHandle(this.systemDatabase,result.childWorkflowID)}}let ires;try{ires=await this.systemDatabase.initWorkflowStatus(internalStatus,(0,node_crypto_1.randomUUID)(),{maxRetries:maxRecoveryAttempts,isDequeuedRequest:params.isQueueDispatch,isRecoveryRequest:params.isRecoveryDispatch})}catch(e){throw e instanceof error_1.DBOSQueueDuplicatedError&&callerID&&callerFunctionID&&await this.systemDatabase.recordOperationResult(callerID,callerFunctionID,internalStatus.workflowName,!0,Date.now(),{error:utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(e))}),e}callerFunctionID!==void 0&&callerID!==void 0&&await this.systemDatabase.recordOperationResult(callerID,callerFunctionID,internalStatus.workflowName,!0,Date.now(),{childWorkflowID:workflowID}),$deadlineEpochMS=ires.deadlineEpochMS,shouldExecute=ires.shouldExecuteOnThisExecutor,await(0,debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_WORKFLOW_ENQUEUE)}async function callPromiseWithTimeout(callPromise,deadlineEpochMS$1,sysdb){let timeoutID,timeoutResult={},timeoutPromise=new Promise((_,reject)=>{timeoutID=setTimeout(reject,deadlineEpochMS$1-Date.now(),timeoutResult)});try{return await Promise.race([callPromise,timeoutPromise])}catch(err){throw err===timeoutResult?(await sysdb.cancelWorkflow(workflowID),await callPromise.catch(()=>{}),new error_1.DBOSWorkflowCancelledError(workflowID)):err}finally{clearTimeout(timeoutID)}}async function handleWorkflowError(err,exec){let e=err;exec.logger.error(e),e.dbos_already_logged=!0,internalStatus.error=utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(e)),internalStatus.status=workflow_1.StatusString.ERROR,exec.#t||await exec.systemDatabase.recordWorkflowError(workflowID,internalStatus),span.setStatus({code:traces_1.SpanStatusCode.ERROR,message:e.message})}let runWorkflow=async()=>{let result;try{let callResult=await(0,traces_1.runWithTrace)(span,async()=>await(0,context_1.runWithParentContext)(pctx,{presetID,workflowTimeoutMS:void 0,deadlineEpochMS,workflowId:workflowID,logger:this.ctxLogger,curWFFunctionId:void 0},()=>{let callPromise=wf.call(params.configuredInstance,...args);return $deadlineEpochMS===void 0?callPromise:callPromiseWithTimeout(callPromise,$deadlineEpochMS,this.systemDatabase)}));if(this.#t){function resultsMatch(recordedResult$1,callResult$1){return recordedResult$1===null?callResult$1==null:utils_1.DBOSJSON.stringify(recordedResult$1)===utils_1.DBOSJSON.stringify(callResult$1)}let recordedResult=DBOSExecutor.reviveResultOrError(await this.systemDatabase.awaitWorkflowResult(workflowID));resultsMatch(recordedResult,callResult)||this.logger.error(`Detect different output for the workflow UUID ${workflowID}!\n Received: ${utils_1.DBOSJSON.stringify(callResult)}\n Original: ${utils_1.DBOSJSON.stringify(recordedResult)}`),result=recordedResult}else result=callResult;let funcResult=(0,utils_1.serializeFunctionInputOutput)(result,[wfname,`<result>`]);result=funcResult.deserialized,internalStatus.output=funcResult.stringified,internalStatus.status=workflow_1.StatusString.SUCCESS,this.#t||await this.systemDatabase.recordWorkflowOutput(workflowID,internalStatus),span.setStatus({code:traces_1.SpanStatusCode.OK})}catch(err){if(err instanceof error_1.DBOSWorkflowConflictError)result=await this.retrieveWorkflow(workflowID).getResult(),span.setAttribute(`cached`,!0),span.setStatus({code:traces_1.SpanStatusCode.OK});else if(err instanceof error_1.DBOSWorkflowCancelledError){if(span.setStatus({code:traces_1.SpanStatusCode.ERROR,message:err.message}),internalStatus.error=err.message,err.workflowID===workflowID)throw internalStatus.status=workflow_1.StatusString.CANCELLED,err;{let e=new error_1.DBOSAwaitedWorkflowCancelledError(err.workflowID);throw await handleWorkflowError(e,this),e}}else throw await handleWorkflowError(err,this),err}finally{this.tracer.endSpan(span)}return result};if(this.#t||shouldExecute&&(params.queueName===void 0||params.executeWorkflow)&&!this.systemDatabase.checkForRunningWorkflow(workflowID)){let workflowPromise=runWorkflow();return this.systemDatabase.registerRunningWorkflow(workflowID,workflowPromise),new workflow_1.InvokedHandle(this.systemDatabase,workflowPromise,workflowID,wf.name)}else return new workflow_1.RetrievedHandle(this.systemDatabase,workflowID)}getQueueByName(name){let q=wfqueue_1.wfQueueRunner.wfQueuesByName.get(name);if(!q)throw new error_1.DBOSNotRegisteredError(name,`Workflow queue '${name}' is not defined.`);return q}async runStepTempWF(stepFn,params,...args){return await(await this.startStepTempWF(stepFn,params,void 0,void 0,...args)).getResult()}async startStepTempWF(stepFn,params,callerWFID,callerFunctionID,...args){return await this.internalWorkflow(async(...args$1)=>await this.callStepFunction(stepFn,void 0,void 0,params.configuredInstance??null,...args$1),{...params,tempWfType:exports.TempWorkflowType.step,tempWfName:(0,decorators_1.getRegisteredFunctionName)(stepFn),tempWfClass:(0,decorators_1.getRegisteredFunctionClassName)(stepFn)},callerWFID,callerFunctionID,...args)}async callStepFunction(stepFn,stepFnName,stepConfig,clsInst,...args){stepFnName=stepFnName??stepFn.name??`<unnamed>`;let startTime=Date.now();if(stepConfig||=(0,decorators_1.getFunctionRegistration)(stepFn)?.stepConfig,stepConfig===void 0)throw new error_1.DBOSNotRegisteredError(stepFnName);let funcID=(0,context_1.functionIDGetIncrement)(),lctx={...(0,context_1.getCurrentContextStore)()},wfid=lctx.workflowId;await this.systemDatabase.checkIfCanceled(wfid);let maxRetryIntervalSec=3600,span=this.tracer.startSpan(stepFnName,{operationUUID:wfid,operationType:exports.OperationType.STEP,operationName:stepFnName,authenticatedUser:lctx.authenticatedUser??``,assumedRole:lctx.assumedRole??``,authenticatedRoles:lctx.authenticatedRoles??[],retriesAllowed:stepConfig.retriesAllowed,intervalSeconds:stepConfig.intervalSeconds,maxAttempts:stepConfig.maxAttempts,backoffRate:stepConfig.backoffRate}),checkr=await this.systemDatabase.getOperationResultAndThrowIfCancelled(wfid,funcID);if(checkr){if(checkr.functionName!==stepFnName)throw new error_1.DBOSUnexpectedStepError(wfid,funcID,stepFnName,checkr.functionName??`?`);let check=DBOSExecutor.reviveResultOrError(checkr);return span.setAttribute(`cached`,!0),span.setStatus({code:traces_1.SpanStatusCode.OK}),this.tracer.endSpan(span),check}if(this.#t)throw new error_1.DBOSDebuggerError(`Failed to find the recorded output for the step: workflow UUID: ${wfid}, step number: ${funcID}`);let maxAttempts=stepConfig.maxAttempts??3,result=dbosNull,err=dbosNull,errors=[];if(stepConfig.retriesAllowed){let attemptNum=0,intervalSeconds=stepConfig.intervalSeconds??1;for(intervalSeconds>maxRetryIntervalSec&&this.logger.warn(`Step config interval exceeds maximum allowed interval, capped to ${maxRetryIntervalSec} seconds!`);result===dbosNull&&attemptNum++<(maxAttempts??3);)try{await this.systemDatabase.checkIfCanceled(wfid);let cresult;await(0,traces_1.runWithTrace)(span,async()=>{await(0,context_1.runInStepContext)(lctx,funcID,maxAttempts,attemptNum,async()=>{cresult=await stepFn.call(clsInst,...args)})}),result=cresult}catch(error){let e=error;errors.push(e),this.logger.warn(`Error in step being automatically retried. Attempt ${attemptNum} of ${maxAttempts}. ${e.stack}`),span.addEvent(`Step attempt ${attemptNum+1} failed`,{retryIntervalSeconds:intervalSeconds,error:error.message},performance.now()),attemptNum<maxAttempts&&(await(0,utils_1.sleepms)(intervalSeconds*1e3),intervalSeconds*=stepConfig.backoffRate??2,intervalSeconds=intervalSeconds<maxRetryIntervalSec?intervalSeconds:maxRetryIntervalSec)}}else try{let cresult;await(0,traces_1.runWithTrace)(span,async()=>{await(0,context_1.runInStepContext)(lctx,funcID,maxAttempts,void 0,async()=>{cresult=await stepFn.call(clsInst,...args)})}),result=cresult}catch(error){err=error}if(result===dbosNull)throw err=err===dbosNull?new error_1.DBOSMaxStepRetriesError(stepFnName,maxAttempts,errors):err,await this.systemDatabase.recordOperationResult(wfid,funcID,stepFnName,!0,startTime,{error:utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(err))}),span.setStatus({code:traces_1.SpanStatusCode.ERROR,message:err.message}),this.tracer.endSpan(span),err;{let funcResult=(0,utils_1.serializeFunctionInputOutput)(result,[stepFnName,`<result>`]);return await this.systemDatabase.recordOperationResult(wfid,funcID,stepFnName,!0,startTime,{output:funcResult.stringified}),span.setStatus({code:traces_1.SpanStatusCode.OK}),this.tracer.endSpan(span),funcResult.deserialized}}async runSendTempWF(destinationId,message,topic,idempotencyKey){let temp_workflow=async(destinationId$1,message$1,topic$1)=>{let ctx=(0,context_1.getCurrentContextStore)(),functionID=(0,context_1.functionIDGetIncrement)();await this.systemDatabase.send(ctx.workflowId,functionID,destinationId$1,utils_1.DBOSJSON.stringify(message$1),topic$1)},workflowUUID=idempotencyKey?destinationId+idempotencyKey:void 0;return(await this.workflow(temp_workflow,{workflowUUID,tempWfType:exports.TempWorkflowType.send,configuredInstance:null},destinationId,message,topic)).getResult()}async getEvent(workflowUUID,key,timeoutSeconds=DBOSExecutor.defaultNotificationTimeoutSec){return utils_1.DBOSJSON.parse(await this.systemDatabase.getEvent(workflowUUID,key,timeoutSeconds))}forkWorkflow(workflowID,startStep,options={}){let newWorkflowID=options.newWorkflowID??(0,context_1.getNextWFID)(void 0);return(0,workflow_management_1.forkWorkflow)(this.systemDatabase,workflowID,startStep,{...options,newWorkflowID})}retrieveWorkflow(workflowID){return new workflow_1.RetrievedHandle(this.systemDatabase,workflowID)}async runInternalStep(callback,functionName,workflowID,functionID,childWfId){let startTime=Date.now(),result=await this.systemDatabase.getOperationResultAndThrowIfCancelled(workflowID,functionID);if(result){if(result.functionName!==functionName)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,functionName,result.functionName);return DBOSExecutor.reviveResultOrError(result)}try{let output=await callback(),funcOutput=(0,utils_1.serializeFunctionInputOutput)(output,[functionName,`<result>`]);return await this.systemDatabase.recordOperationResult(workflowID,functionID,functionName,!0,startTime,{output:funcOutput.stringified,childWorkflowID:childWfId}),funcOutput.deserialized}catch(e){throw await this.systemDatabase.recordOperationResult(workflowID,functionID,functionName,!1,startTime,{error:utils_1.DBOSJSON.stringify((0,serialize_error_1.serializeError)(e)),childWorkflowID:childWfId}),e}}async getWorkflowStatus(workflowID,callerID,callerFN){let status=await this.systemDatabase.getWorkflowStatus(workflowID,callerID,callerFN);return status?(0,workflow_management_1.toWorkflowStatus)(status):null}async listWorkflows(input){return(0,workflow_management_1.listWorkflows)(this.systemDatabase,input)}async listQueuedWorkflows(input){return(0,workflow_management_1.listQueuedWorkflows)(this.systemDatabase,input)}async listWorkflowSteps(workflowID){return(0,workflow_management_1.listWorkflowSteps)(this.systemDatabase,workflowID)}async recoverPendingWorkflows(executorIDs=[`local`]){if(this.#t)throw new error_1.DBOSDebuggerError(`Cannot recover pending workflows in debug mode.`);let handlerArray=[];for(let execID of executorIDs){this.logger.debug(`Recovering workflows assigned to executor: ${execID}`);let pendingWorkflows=await this.systemDatabase.getPendingWorkflows(execID,utils_1.globalParams.appVersion);pendingWorkflows.length>0?this.logger.info(`Recovering ${pendingWorkflows.length} workflows from application version ${utils_1.globalParams.appVersion}`):this.logger.info(`No workflows to recover from application version ${utils_1.globalParams.appVersion}`);for(let pendingWorkflow of pendingWorkflows){this.logger.debug(`Recovering workflow: ${pendingWorkflow.workflowUUID}. Queue name: ${pendingWorkflow.queueName}`);try{pendingWorkflow.queueName&&await this.systemDatabase.clearQueueAssignment(pendingWorkflow.workflowUUID)?handlerArray.push(this.retrieveWorkflow(pendingWorkflow.workflowUUID)):handlerArray.push(await this.executeWorkflowId(pendingWorkflow.workflowUUID,{isRecoveryDispatch:!0}))}catch(e){this.logger.warn(`Recovery of workflow ${pendingWorkflow.workflowUUID} failed: ${e.message}`)}}}return handlerArray}async initEventReceivers(){this.#n=wfqueue_1.wfQueueRunner.dispatchLoop(this);for(let lcl of(0,decorators_1.getLifecycleListeners)())await lcl.initialize?.()}async deactivateEventReceivers(stopQueueThread=!0){this.logger.debug(`Deactivating lifecycle listeners`);for(let lcl of(0,decorators_1.getLifecycleListeners)())try{await lcl.destroy?.()}catch(err){let e=err;this.logger.warn(`Error destroying lifecycle listener: ${e.message}`)}if(this.logger.debug(`Deactivating queue runner`),stopQueueThread)try{wfqueue_1.wfQueueRunner.stop(),await this.#n}catch(err){let e=err;this.logger.warn(`Error destroying wf queue runner: ${e.message}`)}}async executeWorkflowId(workflowID,options){let wfStatus=await this.systemDatabase.getWorkflowStatus(workflowID);if(!wfStatus)throw this.logger.error(`Failed to find workflow status for workflowUUID: ${workflowID}`),new error_1.DBOSError(`Failed to find workflow status for workflow UUID: ${workflowID}`);if(!wfStatus?.input)throw this.logger.error(`Failed to find inputs for workflowUUID: ${workflowID}`),new error_1.DBOSError(`Failed to find inputs for workflow UUID: ${workflowID}`);let inputs=utils_1.DBOSJSON.parse(wfStatus.input),recoverCtx=this.#i(workflowID,wfStatus),{methReg,configuredInst}=this.#r(wfStatus),workflowStartID=options?.startNewWorkflow?void 0:workflowID;if(methReg?.workflowConfig)return await(0,context_1.runWithTopContext)(recoverCtx,async()=>await this.workflow(methReg.registeredFunction,{workflowUUID:workflowStartID,configuredInstance:configuredInst,queueName:wfStatus.queueName,executeWorkflow:!0,deadlineEpochMS:wfStatus.deadlineEpochMS,isRecoveryDispatch:!!options?.isRecoveryDispatch,isQueueDispatch:!!options?.isQueueDispatch},...inputs));let wfName=wfStatus.workflowName,nameArr=wfName.split(`-`);if(!nameArr[0].startsWith(DBOSExecutor.#e))throw new error_1.DBOSError(`Cannot find workflow function for a non-temporary workflow, ID ${workflowID}, class '${wfStatus.workflowClassName}', function '${wfName}'; did you change your code?`);if(nameArr[1]===exports.TempWorkflowType.step){let stepReg=(0,decorators_1.getFunctionRegistrationByName)(wfStatus.workflowClassName,nameArr[2]);if(!stepReg?.stepConfig)throw this.logger.error(`Cannot find step info for ID ${workflowID}, name ${nameArr[2]}`),new error_1.DBOSNotRegisteredError(nameArr[2]);return await(0,context_1.runWithTopContext)(recoverCtx,async()=>await this.startStepTempWF(stepReg.registeredFunction,{workflowUUID:workflowStartID,configuredInstance:configuredInst,queueName:wfStatus.queueName,executeWorkflow:!0,isRecoveryDispatch:!!options?.isRecoveryDispatch,isQueueDispatch:!!options?.isQueueDispatch},void 0,void 0,...inputs))}else if(nameArr[1]===exports.TempWorkflowType.send){let temp_workflow=async(destinationID,message,topic)=>{let ctx=(0,context_1.getCurrentContextStore)(),functionID=(0,context_1.functionIDGetIncrement)();await this.systemDatabase.send(ctx.workflowId,functionID,destinationID,utils_1.DBOSJSON.stringify(message),topic)};return await(0,context_1.runWithTopContext)(recoverCtx,async()=>this.workflow(temp_workflow,{tempWfName:nameArr[2],tempWfType:exports.TempWorkflowType.send,workflowUUID:workflowStartID,queueName:wfStatus.queueName,executeWorkflow:!0,isRecoveryDispatch:!!options?.isRecoveryDispatch,isQueueDispatch:!!options?.isQueueDispatch},...inputs))}else throw this.logger.error(`Unrecognized temporary workflow! UUID ${workflowID}, name ${wfName}`),new error_1.DBOSNotRegisteredError(wfName)}async getEventDispatchState(svc,wfn,key){return await this.systemDatabase.getEventDispatchState(svc,wfn,key)}async upsertEventDispatchState(state){return await this.systemDatabase.upsertEventDispatchState(state)}#i(_workflowID,status){let oc={};return oc.request=status.request,oc.authenticatedUser=status.authenticatedUser,oc.authenticatedRoles=status.authenticatedRoles,oc.assumedRole=status.assumedRole,oc}async cancelWorkflow(workflowID){await this.systemDatabase.cancelWorkflow(workflowID),this.logger.info(`Cancelling workflow ${workflowID}`)}async getWorkflowSteps(workflowID){return(await this.systemDatabase.getAllOperationResults(workflowID)).map(row=>({function_id:row.function_id,function_name:row.function_name??`<unknown>`,child_workflow_id:row.child_workflow_id,output:row.output===null?null:utils_1.DBOSJSON.parse(row.output),error:row.error===null?null:(0,serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(row.error))}))}async resumeWorkflow(workflowID){await this.systemDatabase.resumeWorkflow(workflowID)}computeAppVersion(){let hasher=crypto$1.createHash(`md5`),sortedWorkflowSource=Array.from((0,decorators_1.getAllRegisteredFunctions)()).filter(e=>e.workflowConfig).map(i=>i.origFunction.toString()).sort();sortedWorkflowSource.push(utils_1.globalParams.dbosVersion);for(let sourceCode of sortedWorkflowSource)hasher.update(sourceCode);return hasher.digest(`hex`)}static internalQueue=void 0;static createInternalQueue(){DBOSExecutor.internalQueue===void 0&&(DBOSExecutor.internalQueue=new wfqueue_1.WorkflowQueue(utils_1.INTERNAL_QUEUE_NAME,{}))}static debouncerWorkflow=void 0;static createDebouncerWorkflow(){DBOSExecutor.debouncerWorkflow===void 0&&(DBOSExecutor.debouncerWorkflow=_1.DBOS.registerWorkflow(debouncer_1.debouncerWorkflowFunction,{name:utils_1.DEBOUNCER_WORKLOW_NAME}))}}})),require_migration_runner=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.runSysMigrationsPg=exports.getCurrentSysDBVersion=void 0;async function getCurrentSysDBVersion(client,schemaName=`dbos`){if(!(await client.query(`SELECT table_name FROM information_schema.tables WHERE table_schema = $1 AND table_name = 'dbos_migrations'`,[schemaName])).rows[0]?.table_name)return 0;let verRes=await client.query(`select version from "${schemaName}"."dbos_migrations" order by version desc limit 1`);if(verRes.rowCount===0)return 0;let raw=verRes.rows[0].version,n=Number(raw);return Number.isFinite(n)?n:0}exports.getCurrentSysDBVersion=getCurrentSysDBVersion;let DEFAULT_IGNORABLE_CODES=new Set([`42P07`,`42710`,`42701`,`42P06`,`23505`]);function isPgErrorLike(x){return typeof x==`object`&&!!x&&(`code`in x||`message`in x)}function isDDLAlreadyAppliedPgError(err,ignoreCodes){if(!isPgErrorLike(err))return!1;if(err.code&&ignoreCodes.has(err.code))return!0;let msg=err.message??``;return/already exists/i.test(msg)||/duplicate/i.test(msg)||/multiple.*?not allowed/i.test(msg)}async function runStatementsIgnoring(client,stmts,ignoreCodes,warn){for(let s of stmts)try{await client.query(s,[])}catch(err){if(isDDLAlreadyAppliedPgError(err,ignoreCodes)){warn(`Ignoring migration error; migration was likely already applied. Occurred while executing: ${s}`,err);continue}throw err}}async function runSysMigrationsPg(client,allMigrations,schemaName=`dbos`,opts={}){let{ignoreErrorCodes=DEFAULT_IGNORABLE_CODES,onWarn=m=>console.info(m)}=opts,current=await getCurrentSysDBVersion(client,schemaName),maxKnown=allMigrations.length;if(current>maxKnown)return{fromVersion:current,toVersion:current,appliedCount:0,skippedCount:allMigrations.length,notice:`Database version (${current}) is ahead of this build's max (${maxKnown}). A newer software version may be running concurrently.`};let applied=0,skipped=0,lastAppliedVersion=current,loggedInfo=!1;for(let i=0;i<allMigrations.length;i++){let m=allMigrations[i],v=i+1;if(v<=current){skipped++;continue}loggedInfo||=(onWarn(`Running DBOS system database migrations...`),!0);let stmts=m.pg??[];if(stmts.length===0){onWarn(`Migration "${m.name}" has no Postgres statements; skipping.`),skipped++;continue}await runStatementsIgnoring(client,stmts,ignoreErrorCodes,(msg,e)=>onWarn(`${msg}${e?`\n → ${String(e.message??``)}`:``}`)),applied++,lastAppliedVersion=v}return(await client.query(`UPDATE "${schemaName}"."dbos_migrations" SET "version" = $1`,[lastAppliedVersion])).rowCount===0&&await client.query(`INSERT into "${schemaName}"."dbos_migrations" ("version") values ($1)`,[lastAppliedVersion]),{fromVersion:current,toVersion:lastAppliedVersion,appliedCount:applied,skippedCount:skipped,notice:current<maxKnown&&applied===0&&skipped>0?`Nothing to apply; DB is already up-to-date relative to known migrations.`:void 0}}exports.runSysMigrationsPg=runSysMigrationsPg})),require_migrations=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.allMigrations=void 0;function allMigrations(schemaName=`dbos`){return[{name:`20240123182943_schema`,pg:[`CREATE SCHEMA IF NOT EXISTS "${schemaName}"`]},{name:`20240123182944_dbos_migrations`,pg:[`create table "${schemaName}"."dbos_migrations" ("version" bigint not null, constraint "dbos_migrations_pkey" primary key ("version"))`]},{name:`20240123183021_tables`,pg:[`create table "${schemaName}"."operation_outputs" ("workflow_uuid" text not null, "function_id" integer not null, "output" text, "error" text, constraint "operation_outputs_pkey" primary key ("workflow_uuid", "function_id"))`,`create table "${schemaName}"."workflow_inputs" ("workflow_uuid" text not null, "inputs" text not null, constraint "workflow_inputs_pkey" primary key ("workflow_uuid"))`,`create table "${schemaName}"."workflow_status" ("workflow_uuid" text, "status" text, "name" text, "authenticated_user" text, "assumed_role" text, "authenticated_roles" text, "request" text, "output" text, "error" text, "executor_id" text, constraint "workflow_status_pkey" primary key ("workflow_uuid"))`,`create table "${schemaName}"."notifications" ("destination_uuid" text not null, "topic" text, "message" text not null, "created_at_epoch_ms" bigint not null default (EXTRACT(EPOCH FROM now())*1000)::bigint)`,`create table "${schemaName}"."workflow_events" ("workflow_uuid" text not null, "key" text not null, "value" text not null, constraint "workflow_events_pkey" primary key ("workflow_uuid", "key"))`]},{name:`20240123183025_indexes`,pg:[`create index "idx_workflow_topic" on "${schemaName}"."notifications" ("destination_uuid", "topic")`]},{name:`20240123183030_triggers`,pg:[`
|
|
144
144
|
CREATE OR REPLACE FUNCTION "${schemaName}".notifications_function() RETURNS TRIGGER AS $$
|
|
145
145
|
DECLARE
|
|
146
146
|
payload text := NEW.destination_uuid || '::' || NEW.topic;
|
|
@@ -228,7 +228,7 @@ To resolve the conflict:`,(0,RegistrationConflicts_1.getConflictResolutionRecipe
|
|
|
228
228
|
(workflow_uuid, function_id, output, error, function_name, child_workflow_id )
|
|
229
229
|
SELECT $1 AS workflow_uuid, function_id, output, error, function_name, child_workflow_id
|
|
230
230
|
FROM "${this.schemaName}".operation_outputs
|
|
231
|
-
WHERE workflow_uuid = $2 AND function_id < $3`;await client.query(query,[newWorkflowID,workflowID,startStep])}return await client.query(`COMMIT`),newWorkflowID}catch(error){throw await client.query(`ROLLBACK`),error}finally{client.release()}}async#t(client,functionName,workflowID,functionID,func){let startTime=Date.now(),result=await this.#e(client,workflowID,functionID);if(result!==void 0){if(result.functionName!==functionName)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,functionName,result.functionName);return result.output}let output=await func();return await recordOperationResult(client,workflowID,functionID,functionName,!0,this.schemaName,startTime,Date.now(),{output}),output}async durableSleepms(workflowID,functionID,durationMS){let resolveNotification,cancelPromise=new Promise(resolve=>{resolveNotification=resolve}),cbr=this.cancelWakeupMap.registerCallback(workflowID,resolveNotification);try{let timeoutPromise=Promise.resolve(),{promise,cancel:timeoutCancel}=await this.#n(workflowID,functionID,durationMS);timeoutPromise=promise;try{await Promise.race([cancelPromise,timeoutPromise])}finally{timeoutCancel()}}finally{this.cancelWakeupMap.deregisterCallback(cbr)}await this.checkIfCanceled(workflowID)}async#n(workflowID,functionID,durationMS,maxSleepPerIteration){maxSleepPerIteration===void 0&&(maxSleepPerIteration=durationMS);let curTime=Date.now(),endTimeMs=curTime+durationMS,client=await this.pool.connect();try{let res=await this.#e(client,workflowID,functionID);if(res){if(res.functionName!==exports.DBOS_FUNCNAME_SLEEP)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,exports.DBOS_FUNCNAME_SLEEP,res.functionName);endTimeMs=JSON.parse(res.output)}else await recordOperationResult(client,workflowID,functionID,exports.DBOS_FUNCNAME_SLEEP,!1,this.schemaName,Date.now(),Date.now(),{output:JSON.stringify(endTimeMs)});return{...(0,utils_1.cancellableSleep)(Math.max(Math.min(maxSleepPerIteration,endTimeMs-curTime),0)),endTime:endTimeMs}}finally{client.release()}}nullTopic=`__null__topic__`;async send(workflowID,functionID,destinationID,message,topic){topic??=this.nullTopic;let client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL READ COMMITTED`),await this.#t(client,exports.DBOS_FUNCNAME_SEND,workflowID,functionID,async()=>{await client.query(`INSERT INTO "${this.schemaName}".notifications (destination_uuid, topic, message) VALUES ($1, $2, $3);`,[destinationID,topic,message])}),await client.query(`COMMIT`)}catch(error){await client.query(`ROLLBACK`);let err=error;throw err.code===`23503`?new error_1.DBOSNonExistentWorkflowError(`Sent to non-existent destination workflow UUID: ${destinationID}`):err}finally{client.release()}}async recv(workflowID,functionID,timeoutFunctionID,topic,timeoutSeconds=dbos_executor_1.DBOSExecutor.defaultNotificationTimeoutSec){topic??=this.nullTopic;let startTime=Date.now(),res=await this.getOperationResultAndThrowIfCancelled(workflowID,functionID);if(res){if(res.functionName!==exports.DBOS_FUNCNAME_RECV)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,exports.DBOS_FUNCNAME_RECV,res.functionName);return res.output}let timeoutms=timeoutSeconds===void 0?void 0:timeoutSeconds*1e3,finishTime=timeoutms===void 0?void 0:Date.now()+timeoutms;for(;;){let resolveNotification,messagePromise=new Promise(resolve=>{resolveNotification=resolve}),payload=`${workflowID}::${topic}`,cbr=this.notificationsMap.registerCallback(payload,resolveNotification),crh=this.cancelWakeupMap.registerCallback(workflowID,_res=>{resolveNotification()});try{if(await this.checkIfCanceled(workflowID),(await this.pool.query(`SELECT topic FROM "${this.schemaName}".notifications WHERE destination_uuid=$1 AND topic=$2;`,[workflowID,topic])).rows.length!==0)break;let ct=Date.now();if(finishTime&&ct>finishTime)break;let timeoutPromise=Promise.resolve(),timeoutCancel=()=>{};if(timeoutms){let{promise,cancel,endTime}=await this.#n(workflowID,timeoutFunctionID,timeoutms,this.dbPollingIntervalEventMs);timeoutPromise=promise,timeoutCancel=cancel,finishTime=endTime}else{let poll=finishTime?finishTime-ct:this.dbPollingIntervalEventMs;poll=Math.min(this.dbPollingIntervalEventMs,poll);let{promise,cancel}=(0,utils_1.cancellableSleep)(poll);timeoutPromise=promise,timeoutCancel=cancel}try{await Promise.race([messagePromise,timeoutPromise])}finally{timeoutCancel()}}finally{this.notificationsMap.deregisterCallback(cbr),this.cancelWakeupMap.deregisterCallback(crh)}}await this.checkIfCanceled(workflowID);let message=null,client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL READ COMMITTED`);let finalRecvRows=(await client.query(`WITH oldest_entry AS (
|
|
231
|
+
WHERE workflow_uuid = $2 AND function_id < $3`;await client.query(query,[newWorkflowID,workflowID,startStep])}return await client.query(`COMMIT`),newWorkflowID}catch(error){throw await client.query(`ROLLBACK`),error}finally{client.release()}}async#t(client,functionName,workflowID,functionID,func){let startTime=Date.now(),result=await this.#e(client,workflowID,functionID);if(result!==void 0){if(result.functionName!==functionName)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,functionName,result.functionName);return result.output}let output=await func();return await recordOperationResult(client,workflowID,functionID,functionName,!0,this.schemaName,startTime,Date.now(),{output}),output}async durableSleepms(workflowID,functionID,durationMS){let resolveNotification,cancelPromise=new Promise(resolve$1=>{resolveNotification=resolve$1}),cbr=this.cancelWakeupMap.registerCallback(workflowID,resolveNotification);try{let timeoutPromise=Promise.resolve(),{promise,cancel:timeoutCancel}=await this.#n(workflowID,functionID,durationMS);timeoutPromise=promise;try{await Promise.race([cancelPromise,timeoutPromise])}finally{timeoutCancel()}}finally{this.cancelWakeupMap.deregisterCallback(cbr)}await this.checkIfCanceled(workflowID)}async#n(workflowID,functionID,durationMS,maxSleepPerIteration){maxSleepPerIteration===void 0&&(maxSleepPerIteration=durationMS);let curTime=Date.now(),endTimeMs=curTime+durationMS,client=await this.pool.connect();try{let res=await this.#e(client,workflowID,functionID);if(res){if(res.functionName!==exports.DBOS_FUNCNAME_SLEEP)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,exports.DBOS_FUNCNAME_SLEEP,res.functionName);endTimeMs=JSON.parse(res.output)}else await recordOperationResult(client,workflowID,functionID,exports.DBOS_FUNCNAME_SLEEP,!1,this.schemaName,Date.now(),Date.now(),{output:JSON.stringify(endTimeMs)});return{...(0,utils_1.cancellableSleep)(Math.max(Math.min(maxSleepPerIteration,endTimeMs-curTime),0)),endTime:endTimeMs}}finally{client.release()}}nullTopic=`__null__topic__`;async send(workflowID,functionID,destinationID,message,topic){topic??=this.nullTopic;let client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL READ COMMITTED`),await this.#t(client,exports.DBOS_FUNCNAME_SEND,workflowID,functionID,async()=>{await client.query(`INSERT INTO "${this.schemaName}".notifications (destination_uuid, topic, message) VALUES ($1, $2, $3);`,[destinationID,topic,message])}),await client.query(`COMMIT`)}catch(error){await client.query(`ROLLBACK`);let err=error;throw err.code===`23503`?new error_1.DBOSNonExistentWorkflowError(`Sent to non-existent destination workflow UUID: ${destinationID}`):err}finally{client.release()}}async recv(workflowID,functionID,timeoutFunctionID,topic,timeoutSeconds=dbos_executor_1.DBOSExecutor.defaultNotificationTimeoutSec){topic??=this.nullTopic;let startTime=Date.now(),res=await this.getOperationResultAndThrowIfCancelled(workflowID,functionID);if(res){if(res.functionName!==exports.DBOS_FUNCNAME_RECV)throw new error_1.DBOSUnexpectedStepError(workflowID,functionID,exports.DBOS_FUNCNAME_RECV,res.functionName);return res.output}let timeoutms=timeoutSeconds===void 0?void 0:timeoutSeconds*1e3,finishTime=timeoutms===void 0?void 0:Date.now()+timeoutms;for(;;){let resolveNotification,messagePromise=new Promise(resolve$1=>{resolveNotification=resolve$1}),payload=`${workflowID}::${topic}`,cbr=this.notificationsMap.registerCallback(payload,resolveNotification),crh=this.cancelWakeupMap.registerCallback(workflowID,_res=>{resolveNotification()});try{if(await this.checkIfCanceled(workflowID),(await this.pool.query(`SELECT topic FROM "${this.schemaName}".notifications WHERE destination_uuid=$1 AND topic=$2;`,[workflowID,topic])).rows.length!==0)break;let ct=Date.now();if(finishTime&&ct>finishTime)break;let timeoutPromise=Promise.resolve(),timeoutCancel=()=>{};if(timeoutms){let{promise,cancel,endTime}=await this.#n(workflowID,timeoutFunctionID,timeoutms,this.dbPollingIntervalEventMs);timeoutPromise=promise,timeoutCancel=cancel,finishTime=endTime}else{let poll=finishTime?finishTime-ct:this.dbPollingIntervalEventMs;poll=Math.min(this.dbPollingIntervalEventMs,poll);let{promise,cancel}=(0,utils_1.cancellableSleep)(poll);timeoutPromise=promise,timeoutCancel=cancel}try{await Promise.race([messagePromise,timeoutPromise])}finally{timeoutCancel()}}finally{this.notificationsMap.deregisterCallback(cbr),this.cancelWakeupMap.deregisterCallback(crh)}}await this.checkIfCanceled(workflowID);let message=null,client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL READ COMMITTED`);let finalRecvRows=(await client.query(`WITH oldest_entry AS (
|
|
232
232
|
SELECT destination_uuid, topic, message, created_at_epoch_ms
|
|
233
233
|
FROM "${this.schemaName}".notifications
|
|
234
234
|
WHERE destination_uuid = $1
|
|
@@ -246,9 +246,9 @@ To resolve the conflict:`,(0,RegistrationConflicts_1.getConflictResolutionRecipe
|
|
|
246
246
|
VALUES ($1, $2, $3)
|
|
247
247
|
ON CONFLICT (workflow_uuid, key)
|
|
248
248
|
DO UPDATE SET value = $3
|
|
249
|
-
RETURNING workflow_uuid;`,[workflowID,key,message])}),await client.query(`COMMIT`)}catch(e){throw this.logger.error(e),await client.query(`ROLLBACK`),e}finally{client.release()}}async getEvent(workflowID,key,timeoutSeconds,callerWorkflow){let startTime=Date.now();if(callerWorkflow){let res=await this.getOperationResultAndThrowIfCancelled(callerWorkflow.workflowID,callerWorkflow.functionID);if(res){if(res.functionName!==exports.DBOS_FUNCNAME_GETEVENT)throw new error_1.DBOSUnexpectedStepError(callerWorkflow.workflowID,callerWorkflow.functionID,exports.DBOS_FUNCNAME_GETEVENT,res.functionName);return res.output}}let value=null,payloadKey=`${workflowID}::${key}`,timeoutms=timeoutSeconds===void 0?void 0:timeoutSeconds*1e3,finishTime=timeoutms===void 0?void 0:Date.now()+timeoutms;for(;;){let resolveNotification,valuePromise=new Promise(resolve=>{resolveNotification=resolve}),cbr=this.workflowEventsMap.registerCallback(payloadKey,resolveNotification),crh=callerWorkflow?.workflowID?this.cancelWakeupMap.registerCallback(callerWorkflow.workflowID,_res=>{resolveNotification()}):void 0;try{callerWorkflow?.workflowID&&await this.checkIfCanceled(callerWorkflow?.workflowID);let initRecvRows=(await this.pool.query(`SELECT key, value
|
|
249
|
+
RETURNING workflow_uuid;`,[workflowID,key,message])}),await client.query(`COMMIT`)}catch(e){throw this.logger.error(e),await client.query(`ROLLBACK`),e}finally{client.release()}}async getEvent(workflowID,key,timeoutSeconds,callerWorkflow){let startTime=Date.now();if(callerWorkflow){let res=await this.getOperationResultAndThrowIfCancelled(callerWorkflow.workflowID,callerWorkflow.functionID);if(res){if(res.functionName!==exports.DBOS_FUNCNAME_GETEVENT)throw new error_1.DBOSUnexpectedStepError(callerWorkflow.workflowID,callerWorkflow.functionID,exports.DBOS_FUNCNAME_GETEVENT,res.functionName);return res.output}}let value=null,payloadKey=`${workflowID}::${key}`,timeoutms=timeoutSeconds===void 0?void 0:timeoutSeconds*1e3,finishTime=timeoutms===void 0?void 0:Date.now()+timeoutms;for(;;){let resolveNotification,valuePromise=new Promise(resolve$1=>{resolveNotification=resolve$1}),cbr=this.workflowEventsMap.registerCallback(payloadKey,resolveNotification),crh=callerWorkflow?.workflowID?this.cancelWakeupMap.registerCallback(callerWorkflow.workflowID,_res=>{resolveNotification()}):void 0;try{callerWorkflow?.workflowID&&await this.checkIfCanceled(callerWorkflow?.workflowID);let initRecvRows=(await this.pool.query(`SELECT key, value
|
|
250
250
|
FROM "${this.schemaName}".workflow_events
|
|
251
|
-
WHERE workflow_uuid=$1 AND key=$2;`,[workflowID,key])).rows;if(initRecvRows.length>0){value=initRecvRows[0].value;break}let ct=Date.now();if(finishTime&&ct>finishTime)break;let timeoutPromise=Promise.resolve(),timeoutCancel=()=>{};if(callerWorkflow&&timeoutms){let{promise,cancel,endTime}=await this.#n(callerWorkflow.workflowID,callerWorkflow.timeoutFunctionID??-1,timeoutms,this.dbPollingIntervalEventMs);timeoutPromise=promise,timeoutCancel=cancel,finishTime=endTime}else{let poll=finishTime?finishTime-ct:this.dbPollingIntervalEventMs;poll=Math.min(this.dbPollingIntervalEventMs,poll);let{promise,cancel}=(0,utils_1.cancellableSleep)(poll);timeoutPromise=promise,timeoutCancel=cancel}try{await Promise.race([valuePromise,timeoutPromise])}finally{timeoutCancel()}}finally{this.workflowEventsMap.deregisterCallback(cbr),crh&&this.cancelWakeupMap.deregisterCallback(crh)}}return callerWorkflow&&await this.recordOperationResult(callerWorkflow.workflowID,callerWorkflow.functionID,exports.DBOS_FUNCNAME_GETEVENT,!0,startTime,{output:value}),value}#r(workflowID){this.runningWorkflowMap.has(workflowID)&&this.workflowCancellationMap.set(workflowID,!0),this.cancelWakeupMap.callCallbacks(workflowID)}#i(workflowID){this.workflowCancellationMap.has(workflowID)&&this.workflowCancellationMap.delete(workflowID)}async cancelWorkflow(workflowID){let client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL READ COMMITTED`);let statusResult=await getWorkflowStatusValue(client,workflowID,this.schemaName);if(!statusResult)throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${workflowID} does not exist`);if(statusResult===workflow_1.StatusString.SUCCESS||statusResult===workflow_1.StatusString.ERROR||statusResult===workflow_1.StatusString.CANCELLED){await client.query(`ROLLBACK`);return}await updateWorkflowStatus(client,workflowID,workflow_1.StatusString.CANCELLED,this.schemaName,{update:{queueName:null,resetDeduplicationID:!0,resetStartedAtEpochMs:!0}}),await client.query(`COMMIT`)}catch(error){throw this.logger.error(error),await client.query(`ROLLBACK`),error}finally{client.release()}this.#r(workflowID)}async#a(client,workflowID){if(this.workflowCancellationMap.get(workflowID)===!0||await getWorkflowStatusValue(client,workflowID,this.schemaName)===workflow_1.StatusString.CANCELLED)throw new error_1.DBOSWorkflowCancelledError(workflowID)}async checkIfCanceled(workflowID){let client=await this.pool.connect();try{await this.#a(client,workflowID)}finally{client.release()}}async resumeWorkflow(workflowID){this.#i(workflowID);let client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL REPEATABLE READ`);let statusResult=await getWorkflowStatusValue(client,workflowID,this.schemaName);if(!statusResult||statusResult===workflow_1.StatusString.SUCCESS||statusResult===workflow_1.StatusString.ERROR){if(await client.query(`ROLLBACK`),!statusResult&&statusResult===void 0)throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${workflowID} does not exist`);return}await updateWorkflowStatus(client,workflowID,workflow_1.StatusString.ENQUEUED,this.schemaName,{update:{queueName:utils_1.INTERNAL_QUEUE_NAME,resetRecoveryAttempts:!0,resetDeadline:!0,resetDeduplicationID:!0,resetStartedAtEpochMs:!0},throwOnFailure:!1}),await client.query(`COMMIT`)}catch(error){throw this.logger.error(error),await client.query(`ROLLBACK`),error}finally{client.release()}}registerRunningWorkflow(workflowID,workflowPromise){let awaitWorkflowPromise=workflowPromise.catch(error=>{this.logger.debug(`Captured error in awaitWorkflowPromise: `+error)}).finally(()=>{this.runningWorkflowMap.delete(workflowID),this.workflowCancellationMap.delete(workflowID)});this.runningWorkflowMap.set(workflowID,awaitWorkflowPromise)}checkForRunningWorkflow(workflowID){return this.runningWorkflowMap.has(workflowID)}async awaitRunningWorkflows(){this.runningWorkflowMap.size>0&&(this.logger.info(`Waiting for pending workflows to finish.`),await Promise.allSettled(this.runningWorkflowMap.values())),this.workflowEventsMap.map.size>0&&this.logger.warn(`Workflow events map is not empty - shutdown is not clean.`),this.notificationsMap.map.size>0&&this.logger.warn(`Message notification map is not empty - shutdown is not clean.`)}async getWorkflowStatus(workflowID,callerID,callerFN){let funcGetStatus=async()=>{let status=(await this.listWorkflows({workflowIDs:[workflowID]})).find(s=>s.workflowUUID===workflowID);return status?JSON.stringify(status):null};if(callerID&&callerFN){let client=await this.pool.connect();try{return parseStatus(await this.#t(client,exports.DBOS_FUNCNAME_GETSTATUS,callerID,callerFN,funcGetStatus))}finally{client.release()}}else return parseStatus(await funcGetStatus());function parseStatus(json){return json?JSON.parse(json):null}}async awaitWorkflowResult(workflowID,timeoutSeconds,callerID,timerFuncID){let timeoutms=timeoutSeconds===void 0?void 0:timeoutSeconds*1e3,finishTime=timeoutms===void 0?void 0:Date.now()+timeoutms;for(;;){let resolveNotification,statusPromise=new Promise(resolve=>{resolveNotification=resolve}),irh=this.cancelWakeupMap.registerCallback(workflowID,_res=>{resolveNotification()}),crh=callerID?this.cancelWakeupMap.registerCallback(callerID,_res=>{resolveNotification()}):void 0;try{callerID&&await this.checkIfCanceled(callerID);try{let{rows}=await this.pool.query(`SELECT status, output, error FROM "${this.schemaName}".workflow_status
|
|
251
|
+
WHERE workflow_uuid=$1 AND key=$2;`,[workflowID,key])).rows;if(initRecvRows.length>0){value=initRecvRows[0].value;break}let ct=Date.now();if(finishTime&&ct>finishTime)break;let timeoutPromise=Promise.resolve(),timeoutCancel=()=>{};if(callerWorkflow&&timeoutms){let{promise,cancel,endTime}=await this.#n(callerWorkflow.workflowID,callerWorkflow.timeoutFunctionID??-1,timeoutms,this.dbPollingIntervalEventMs);timeoutPromise=promise,timeoutCancel=cancel,finishTime=endTime}else{let poll=finishTime?finishTime-ct:this.dbPollingIntervalEventMs;poll=Math.min(this.dbPollingIntervalEventMs,poll);let{promise,cancel}=(0,utils_1.cancellableSleep)(poll);timeoutPromise=promise,timeoutCancel=cancel}try{await Promise.race([valuePromise,timeoutPromise])}finally{timeoutCancel()}}finally{this.workflowEventsMap.deregisterCallback(cbr),crh&&this.cancelWakeupMap.deregisterCallback(crh)}}return callerWorkflow&&await this.recordOperationResult(callerWorkflow.workflowID,callerWorkflow.functionID,exports.DBOS_FUNCNAME_GETEVENT,!0,startTime,{output:value}),value}#r(workflowID){this.runningWorkflowMap.has(workflowID)&&this.workflowCancellationMap.set(workflowID,!0),this.cancelWakeupMap.callCallbacks(workflowID)}#i(workflowID){this.workflowCancellationMap.has(workflowID)&&this.workflowCancellationMap.delete(workflowID)}async cancelWorkflow(workflowID){let client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL READ COMMITTED`);let statusResult=await getWorkflowStatusValue(client,workflowID,this.schemaName);if(!statusResult)throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${workflowID} does not exist`);if(statusResult===workflow_1.StatusString.SUCCESS||statusResult===workflow_1.StatusString.ERROR||statusResult===workflow_1.StatusString.CANCELLED){await client.query(`ROLLBACK`);return}await updateWorkflowStatus(client,workflowID,workflow_1.StatusString.CANCELLED,this.schemaName,{update:{queueName:null,resetDeduplicationID:!0,resetStartedAtEpochMs:!0}}),await client.query(`COMMIT`)}catch(error){throw this.logger.error(error),await client.query(`ROLLBACK`),error}finally{client.release()}this.#r(workflowID)}async#a(client,workflowID){if(this.workflowCancellationMap.get(workflowID)===!0||await getWorkflowStatusValue(client,workflowID,this.schemaName)===workflow_1.StatusString.CANCELLED)throw new error_1.DBOSWorkflowCancelledError(workflowID)}async checkIfCanceled(workflowID){let client=await this.pool.connect();try{await this.#a(client,workflowID)}finally{client.release()}}async resumeWorkflow(workflowID){this.#i(workflowID);let client=await this.pool.connect();try{await client.query(`BEGIN ISOLATION LEVEL REPEATABLE READ`);let statusResult=await getWorkflowStatusValue(client,workflowID,this.schemaName);if(!statusResult||statusResult===workflow_1.StatusString.SUCCESS||statusResult===workflow_1.StatusString.ERROR){if(await client.query(`ROLLBACK`),!statusResult&&statusResult===void 0)throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${workflowID} does not exist`);return}await updateWorkflowStatus(client,workflowID,workflow_1.StatusString.ENQUEUED,this.schemaName,{update:{queueName:utils_1.INTERNAL_QUEUE_NAME,resetRecoveryAttempts:!0,resetDeadline:!0,resetDeduplicationID:!0,resetStartedAtEpochMs:!0},throwOnFailure:!1}),await client.query(`COMMIT`)}catch(error){throw this.logger.error(error),await client.query(`ROLLBACK`),error}finally{client.release()}}registerRunningWorkflow(workflowID,workflowPromise){let awaitWorkflowPromise=workflowPromise.catch(error=>{this.logger.debug(`Captured error in awaitWorkflowPromise: `+error)}).finally(()=>{this.runningWorkflowMap.delete(workflowID),this.workflowCancellationMap.delete(workflowID)});this.runningWorkflowMap.set(workflowID,awaitWorkflowPromise)}checkForRunningWorkflow(workflowID){return this.runningWorkflowMap.has(workflowID)}async awaitRunningWorkflows(){this.runningWorkflowMap.size>0&&(this.logger.info(`Waiting for pending workflows to finish.`),await Promise.allSettled(this.runningWorkflowMap.values())),this.workflowEventsMap.map.size>0&&this.logger.warn(`Workflow events map is not empty - shutdown is not clean.`),this.notificationsMap.map.size>0&&this.logger.warn(`Message notification map is not empty - shutdown is not clean.`)}async getWorkflowStatus(workflowID,callerID,callerFN){let funcGetStatus=async()=>{let status=(await this.listWorkflows({workflowIDs:[workflowID]})).find(s=>s.workflowUUID===workflowID);return status?JSON.stringify(status):null};if(callerID&&callerFN){let client=await this.pool.connect();try{return parseStatus(await this.#t(client,exports.DBOS_FUNCNAME_GETSTATUS,callerID,callerFN,funcGetStatus))}finally{client.release()}}else return parseStatus(await funcGetStatus());function parseStatus(json){return json?JSON.parse(json):null}}async awaitWorkflowResult(workflowID,timeoutSeconds,callerID,timerFuncID){let timeoutms=timeoutSeconds===void 0?void 0:timeoutSeconds*1e3,finishTime=timeoutms===void 0?void 0:Date.now()+timeoutms;for(;;){let resolveNotification,statusPromise=new Promise(resolve$1=>{resolveNotification=resolve$1}),irh=this.cancelWakeupMap.registerCallback(workflowID,_res=>{resolveNotification()}),crh=callerID?this.cancelWakeupMap.registerCallback(callerID,_res=>{resolveNotification()}):void 0;try{callerID&&await this.checkIfCanceled(callerID);try{let{rows}=await this.pool.query(`SELECT status, output, error FROM "${this.schemaName}".workflow_status
|
|
252
252
|
WHERE workflow_uuid=$1`,[workflowID]);if(rows.length>0){let status=rows[0].status;if(status===workflow_1.StatusString.SUCCESS)return{output:rows[0].output};if(status===workflow_1.StatusString.ERROR)return{error:rows[0].error};if(status===workflow_1.StatusString.CANCELLED)return{cancelled:!0}}}catch(e){let err=e;throw this.logger.error(`Exception from system database: ${err}`,err),err}let ct=Date.now();if(finishTime&&ct>finishTime)return;let timeoutPromise=Promise.resolve(),timeoutCancel=()=>{};if(timerFuncID!==void 0&&callerID!==void 0&&timeoutms!==void 0){let{promise,cancel,endTime}=await this.#n(callerID,timerFuncID,timeoutms,this.dbPollingIntervalResultMs);finishTime=endTime,timeoutPromise=promise,timeoutCancel=cancel}else{let poll=finishTime?finishTime-ct:this.dbPollingIntervalResultMs;poll=Math.min(this.dbPollingIntervalResultMs,poll);let{promise,cancel}=(0,utils_1.cancellableSleep)(poll);timeoutPromise=promise,timeoutCancel=cancel}try{await Promise.race([statusPromise,timeoutPromise])}finally{timeoutCancel()}}finally{this.cancelWakeupMap.deregisterCallback(irh),crh&&this.cancelWakeupMap.deregisterCallback(crh)}}}reconnectTimeout=null;async#o(){let connect=async()=>{let reconnect=()=>{this.reconnectTimeout||=setTimeout(async()=>{this.reconnectTimeout=null,await connect()},1e3)},client=null;try{client=await this.pool.connect(),await client.query(`LISTEN dbos_notifications_channel;`),await client.query(`LISTEN dbos_workflow_events_channel;`),client.on(`notification`,msg=>{this.shouldUseDBNotifications&&(msg.channel===`dbos_notifications_channel`&&msg.payload?this.notificationsMap.callCallbacks(msg.payload):msg.channel===`dbos_workflow_events_channel`&&msg.payload&&this.workflowEventsMap.callCallbacks(msg.payload))}),client.on(`error`,err=>{this.logger.warn(`Error in notifications client: ${err}`),client&&(client.removeAllListeners(),client.release(!0)),reconnect()}),this.notificationsClient=client}catch(error){this.logger.warn(`Error in notifications listener: ${String(error)}`),client&&(client.removeAllListeners(),client.release(!0)),reconnect()}};await connect()}async getEventDispatchState(service$1,workflowName,key){let res=await this.pool.query(`SELECT * FROM "${this.schemaName}".event_dispatch_kv
|
|
253
253
|
WHERE workflow_fn_name = $1 AND service_name = $2 AND key = $3;`,[workflowName,service$1,key]);if(res.rows.length!==0)return{service:res.rows[0].service_name,workflowFnName:res.rows[0].workflow_fn_name,key:res.rows[0].key,value:res.rows[0].value,updateTime:res.rows[0].update_time,updateSeq:res.rows[0].update_seq!==null&&res.rows[0].update_seq!==void 0?BigInt(res.rows[0].update_seq):void 0}}async upsertEventDispatchState(state){let res=await this.pool.query(`INSERT INTO "${this.schemaName}".event_dispatch_kv (
|
|
254
254
|
service_name, workflow_fn_name, key, value, update_time, update_seq)
|
|
@@ -335,28 +335,4 @@ export default async function seed(container: AppOS.Container) {}
|
|
|
335
335
|
`;async function exists(filePath){try{return await fs$1.access(filePath),!0}catch{return!1}}async function findLatestSnapshot(migrationsFolder){if(!await exists(migrationsFolder))return null;let migrationDirs=(await fs$1.readdir(migrationsFolder,{withFileTypes:!0})).filter(e=>e.isDirectory()&&/^\d{14}_/.test(e.name)).map(e=>e.name).sort().reverse();if(migrationDirs.length===0)return null;let snapshotPath=path.join(migrationsFolder,migrationDirs[0],`snapshot.json`);if(!await exists(snapshotPath))return null;let content=await fs$1.readFile(snapshotPath,`utf-8`);return JSON.parse(content)}async function ensureDatabaseScaffolding(dbName){let dbFolder=path.join(process.cwd(),APPOS_DIR,DATABASES_DIR,dbName);await exists(dbFolder)||await fs$1.mkdir(dbFolder,{recursive:!0});let schemaPath=path.join(dbFolder,`schema.ts`);await exists(schemaPath)||await fs$1.writeFile(schemaPath,SCHEMA_TEMPLATE(dbName));let relationsPath=path.join(dbFolder,`relations.ts`);await exists(relationsPath)||await fs$1.writeFile(relationsPath,RELATIONS_TEMPLATE(dbName));let seedPath=path.join(dbFolder,`seed.ts`);await exists(seedPath)||await fs$1.writeFile(seedPath,SEED_TEMPLATE(dbName));let schemaMigrationsFolder=path.join(dbFolder,`schema-migrations`);await exists(schemaMigrationsFolder)||await fs$1.mkdir(schemaMigrationsFolder,{recursive:!0});let dataMigrationsFolder=path.join(dbFolder,`data-migrations`);await exists(dataMigrationsFolder)||await fs$1.mkdir(dataMigrationsFolder,{recursive:!0})}async function generateDataMigrations(opts){let{ctx}=opts,{container}=ctx,databaseNames=Object.keys(container.db);if(ctx.info(`Generating data migration`),databaseNames.length===0){ctx.info(`No databases available`);return}let selectedDb=await ctx.choice({message:`Select database`,options:databaseNames.map(name=>({value:name,label:name}))});ctx.isCancel(selectedDb)&&ctx.cancel();let dbName=selectedDb;await ensureDatabaseScaffolding(dbName);let{migrationsFolder}=defineMigrationOpts(dbName,`data`),migrationFile=await ctx.task(dbName,async()=>{let migrationTag=`${new Date().toISOString().replace(/[-:T]/g,``).slice(0,14)}_${generateMigrationName()}`,migrationFolder=path.join(migrationsFolder,migrationTag);await fs$1.mkdir(migrationFolder,{recursive:!0});let file=path.join(migrationFolder,`migration.sql`);return await fs$1.writeFile(file,`-- Write your data migration SQL here
|
|
336
336
|
`),file});ctx.success(migrationFile)}async function generateMigrations(opts){let{ctx,migrationType}=opts,{container}=ctx;if(migrationType===`data`){await generateDataMigrations(opts);return}let databaseNames=Object.keys(container.db);if(ctx.info(`Generating ${migrationType} migrations`),databaseNames.length===0){ctx.info(`Nothing to generate`);return}for(let name of databaseNames)await ensureDatabaseScaffolding(name);let createdAny=!1;for(let name of databaseNames){let schemaPath=path.join(process.cwd(),APPOS_DIR,DATABASES_DIR,name,`schema.ts`),{migrationsFolder}=defineMigrationOpts(name,migrationType);try{let schemaModule=await import(schemaPath),schema=schemaModule.default||schemaModule,prevJson=await findLatestSnapshot(migrationsFolder)??await generateDrizzleJson({}),currentJson=await generateDrizzleJson(schema),migrationStatements=await generateMigration(prevJson,currentJson);if(!migrationStatements||migrationStatements.length===0){ctx.taskStatus(name,`no changes`);continue}let migrationFile=await ctx.task(name,async()=>{let migrationTag=`${new Date().toISOString().replace(/[-:T]/g,``).slice(0,14)}_${generateMigrationName()}`,migrationFolder=path.join(migrationsFolder,migrationTag);await fs$1.mkdir(migrationFolder,{recursive:!0});let sqlContent=`${migrationStatements.join(`;
|
|
337
337
|
|
|
338
|
-
`)};`,file=path.join(migrationFolder,`migration.sql`),snapshotFile=path.join(migrationFolder,`snapshot.json`);return await fs$1.writeFile(file,sqlContent),await fs$1.writeFile(snapshotFile,JSON.stringify(currentJson,null,2)),file});ctx.success(migrationFile),createdAny=!0}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}}createdAny||ctx.info(`Nothing to generate`)}async function runMigrations(opts){let{ctx,migrationType}=opts,{container}=ctx,databaseNames=Object.keys(container.db),originalLogLevel=container.logger.level;container.logger.level=`silent`,migrationType===`schema`&&await(0,import_system_database.ensureSystemDatabase)(container.worker.dbUrl,container.logger);let hasAnyMigrations=(await Promise.all(databaseNames.map(async name=>{let{migrationsFolder}=defineMigrationOpts(name,migrationType);return exists(migrationsFolder)}))).some(Boolean);if(databaseNames.length===0||!hasAnyMigrations){ctx.info(`Nothing to migrate`),container.logger.level=originalLogLevel;return}for(let name of databaseNames){let db=container.db[name],migrationOpts=defineMigrationOpts(name,migrationType);if(await exists(migrationOpts.migrationsFolder))try{await ctx.task(name,async()=>{await migrate(db,migrationOpts)})}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}}container.logger.level=originalLogLevel}async function runSeeds(opts){let{ctx}=opts,{container}=ctx,databaseNames=Object.keys(container.db);if(databaseNames.length===0){ctx.info(`Nothing to seed`);return}for(let name of databaseNames)await ensureDatabaseScaffolding(name);for(let name of databaseNames){let seedPath=path.join(process.cwd(),APPOS_DIR,DATABASES_DIR,name,`seed.ts`);try{await ctx.task(name,async()=>{let seedModule=await import(seedPath),seedFn=seedModule.default||seedModule.seed;if(typeof seedFn!=`function`)throw Error(`seed file does not export a function`);await seedFn(container)})}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}}}var gen_default$1=defineCommand({description:`Generate database data migrations`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:data:gen`),await generateMigrations({ctx,migrationType:`data`}),await ctx.cleanup(),ctx.outro()}}),migrate_default$1=defineCommand({description:`Run pending database data migrations`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:data:migrate`),await runMigrations({ctx,migrationType:`data`}),await ctx.cleanup(),ctx.outro()}}),gen_default=defineCommand({description:`Generate database schema migrations from schema changes`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:schema:gen`),await generateMigrations({ctx,migrationType:`schema`}),await ctx.cleanup(),ctx.outro()}}),migrate_default=defineCommand({description:`Run pending database schema migrations`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:schema:migrate`),await runMigrations({ctx,migrationType:`schema`}),await ctx.cleanup(),ctx.outro()}}),seed_default=defineCommand({description:`Seed databases with initial data`,args:z.tuple([]),opts:z.object({}),async run(ctx){await runSeeds({ctx}),await ctx.cleanup()}}),down_default=defineCommand({description:`Teardown the infrastructure`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`down`);try{await ctx.spinner(`Stopping containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`down`,`--remove-orphans`,`--timeout=0`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}ctx.outro()}}),preview_default=defineCommand({description:`Preview the application`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`preview`),ctx.step(`Starting containers (Ctrl+C to stop)`);let proc=spawn(`docker`,[`compose`,`--profile=app`,`up`,`--build`],{stdio:`inherit`,cwd:process.cwd()}),isShuttingDown=!1,cleanup=async()=>{if(!isShuttingDown){isShuttingDown=!0,proc.kill(`SIGTERM`),ctx.step(`Stopping containers`);try{await ctx.exec(`docker`,[`compose`,`--profile=app`,`down`,`--remove-orphans`,`--timeout=0`])}catch{}process.exit(0)}};process.on(`SIGINT`,cleanup),process.on(`SIGTERM`,cleanup),proc.on(`close`,()=>{isShuttingDown||cleanup()}),await new Promise(()=>{})}}),version=`0.2.4-0`;const runtimeInfo$1=`(AppOS v${version} | Node ${process.version})`;var repl_default=defineCommand({description:`Start an interactive REPL with container access`,aliases:[`r`],args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`repl`);let{container}=ctx,available=[],dbNames=Object.keys(container.db);dbNames.length>0&&available.push(`container.db.{${dbNames.join(`, `)}}`);let cacheNames=Object.keys(container.cache);cacheNames.length>0&&available.push(`container.cache.{${cacheNames.join(`, `)}}`);let otherKeys=Object.keys(container).filter(k=>k!==`db`&&k!==`cache`).map(k=>`container.${k}`);available.push(...otherKeys),ctx.info(`Starting REPL ${runtimeInfo$1}`),ctx.info(`Available: ${available.join(`, `)}`),ctx.line(``);let replServer=repl.start({prompt:`appos(${container.config.APP_NAME})> `,useColors:!0,useGlobal:!0,breakEvalOnSigint:!0});replServer.context.container=container,replServer.on(`exit`,async()=>{await ctx.cleanup(),ctx.info(`Bye`),process.exit(0)}),await new Promise(()=>{})}}),reset_default=defineCommand({description:`Reset the infrastructure`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`reset`);try{await ctx.spinner(`Stopping containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`down`,`--remove-orphans`,`--timeout=0`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}try{await ctx.spinner(`Starting containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`up`,`--wait`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}ctx.step(`Running schema migrations`),await runMigrations({ctx,migrationType:`schema`}),ctx.step(`Seeding databases`),await runSeeds({ctx}),await ctx.cleanup(),ctx.outro()}});const scripts={increment:`
|
|
339
|
-
local windowMs = tonumber(ARGV[2])
|
|
340
|
-
local resetOnChange = ARGV[1] == "1"
|
|
341
|
-
|
|
342
|
-
local timeToExpire = redis.call("PTTL", KEYS[1])
|
|
343
|
-
|
|
344
|
-
if timeToExpire <= 0 then
|
|
345
|
-
redis.call("SET", KEYS[1], 1, "PX", windowMs)
|
|
346
|
-
return { 1, windowMs }
|
|
347
|
-
end
|
|
348
|
-
|
|
349
|
-
local totalHits = redis.call("INCR", KEYS[1])
|
|
350
|
-
|
|
351
|
-
if resetOnChange then
|
|
352
|
-
redis.call("PEXPIRE", KEYS[1], windowMs)
|
|
353
|
-
timeToExpire = windowMs
|
|
354
|
-
end
|
|
355
|
-
|
|
356
|
-
return { totalHits, timeToExpire }
|
|
357
|
-
`.replaceAll(/^\s+/gm,``).trim(),get:`
|
|
358
|
-
local totalHits = redis.call("GET", KEYS[1])
|
|
359
|
-
local timeToExpire = redis.call("PTTL", KEYS[1])
|
|
360
|
-
|
|
361
|
-
return { totalHits, timeToExpire }
|
|
362
|
-
`.replaceAll(/^\s+/gm,``).trim()},toInt=input=>typeof input==`number`?input:Number.parseInt((input??``).toString(),10),parseScriptResponse=results=>{if(!Array.isArray(results))throw TypeError(`Expected result to be array of values`);if(results.length!==2)throw Error(`Expected 2 replies, got ${results.length}`);let totalHits=results[0]===!1?0:toInt(results[0]),timeToExpire=toInt(results[1]);return{totalHits,resetTime:new Date(Date.now()+timeToExpire)}};var RedisStore=class{sendCommand;prefix;resetExpiryOnChange;incrementScriptSha;getScriptSha;windowMs;constructor(options){if(typeof options!=`object`)throw TypeError(`rate-limit-redis: Error: options object is required`);if(`sendCommand`in options&&!(`sendCommandCluster`in options)){let sendCommandFn=options.sendCommand.bind(this);this.sendCommand=async({command})=>sendCommandFn(...command)}else if(!(`sendCommand`in options)&&`sendCommandCluster`in options)this.sendCommand=options.sendCommandCluster.bind(this);else throw Error(`rate-limit-redis: Error: options must include either sendCommand or sendCommandCluster (but not both)`);this.prefix=options.prefix??`rl:`,this.resetExpiryOnChange=options.resetExpiryOnChange??!1,this.incrementScriptSha=this.loadIncrementScript(),this.getScriptSha=this.loadGetScript()}async loadIncrementScript(key){let result=await this.sendCommand({key,isReadOnly:!1,command:[`SCRIPT`,`LOAD`,scripts.increment]});if(typeof result!=`string`)throw TypeError(`unexpected reply from redis client`);return result}async loadGetScript(key){let result=await this.sendCommand({key,isReadOnly:!1,command:[`SCRIPT`,`LOAD`,scripts.get]});if(typeof result!=`string`)throw TypeError(`unexpected reply from redis client`);return result}async retryableIncrement(_key){let key=this.prefixKey(_key),evalCommand=async()=>this.sendCommand({key,isReadOnly:!1,command:[`EVALSHA`,await this.incrementScriptSha,`1`,key,this.resetExpiryOnChange?`1`:`0`,this.windowMs.toString()]});try{return await evalCommand()}catch{return this.incrementScriptSha=this.loadIncrementScript(key),evalCommand()}}prefixKey(key){return`${this.prefix}${key}`}init(options){this.windowMs=options.windowMs}async get(_key){let key=this.prefixKey(_key),results,evalCommand=async()=>this.sendCommand({key,isReadOnly:!0,command:[`EVALSHA`,await this.getScriptSha,`1`,key]});try{results=await evalCommand()}catch{this.getScriptSha=this.loadGetScript(key),results=await evalCommand()}return parseScriptResponse(results)}async increment(key){return parseScriptResponse(await this.retryableIncrement(key))}async decrement(_key){let key=this.prefixKey(_key);await this.sendCommand({key,isReadOnly:!1,command:[`DECR`,key]})}async resetKey(_key){let key=this.prefixKey(_key);await this.sendCommand({key,isReadOnly:!1,command:[`DEL`,key]})}};function getErrorStatus(error){if(error&&typeof error==`object`&&`status`in error){let status=error.status;if(typeof status==`number`)return status}return error instanceof SyntaxError?400:500}function defineErrorHandlerMiddleware(logger){return(error,req,res,next)=>{let userAgent=req.headers[`user-agent`];if(logger.error({error:error.message,stack:error.stack,url:req.url,method:req.method,userAgent:typeof userAgent==`string`?userAgent:userAgent?.[0],ip:req.ip},`Unhandled request error`),res.headersSent)return next(error);let isDevelopment=process.env.NODE_ENV!==`production`;res.status(getErrorStatus(error)).json({error:`Internal server error`,...isDevelopment&&{message:error.message,stack:error.stack}})}}function defineHealthMiddleware(path$2=`/health`){return(req,res,next)=>{if(req.path!==path$2)return next();res.status(200).json({status:`healthy`,timestamp:new Date().toISOString(),uptime:process.uptime()})}}function defineI18nMiddleware(i18n){return(req,res,next)=>{let acceptLanguage=req.headers[`accept-language`],detectedLng=`en`;if(acceptLanguage){let parsed=acceptLanguage.split(`,`)[0].split(`;`)[0].trim();parsed&&parsed.length>0&&(detectedLng=parsed)}req.dir=i18n.dir(detectedLng),req.language=detectedLng,req.languages=i18n.languages,req.t=i18n.getFixedT(detectedLng),next()}}var instrumentation_exports={};import*as import__opentelemetry_api from"@opentelemetry/api";__reExport(instrumentation_exports,import__opentelemetry_api),register(`@opentelemetry/instrumentation/hook.mjs`,import.meta.url);const service={name:process.env.APP_NAME||`appos`,version:process.env.APP_VERSION||`development`};new NodeSDK({resource:resourceFromAttributes({[ATTR_SERVICE_NAME]:service.name,[ATTR_SERVICE_VERSION]:service.version}),spanProcessors:[new BatchSpanProcessor(new OTLPTraceExporter({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT||`http://localhost:4318/v1/traces`,headers:process.env.OTEL_EXPORTER_OTLP_HEADERS?JSON.parse(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}))],instrumentations:[getNodeAutoInstrumentations({"@opentelemetry/instrumentation-fs":{enabled:!1},"@opentelemetry/instrumentation-dns":{enabled:!1}}),new PinoInstrumentation({logHook:(_span,record)=>{record[`service.name`]=service.name}})]}).start();const CF_COUNTRY_HEADER=`cf-ipcountry`;function extractRequestMetadata(req,config){config?.injectCountry&&!req.headers[CF_COUNTRY_HEADER]&&(req.headers[CF_COUNTRY_HEADER]=config.injectCountry);let forwardedFor=req.headers[`x-forwarded-for`],ipAddress;ipAddress=typeof forwardedFor==`string`?forwardedFor.split(`,`)[0].trim():Array.isArray(forwardedFor)&&forwardedFor.length>0?forwardedFor[0].split(`,`)[0].trim():req.socket.remoteAddress||``;let userAgent=req.headers[`user-agent`]||``,country=req.headers[CF_COUNTRY_HEADER]||``;return{ipAddress,userAgent,country}}function defineRequestLoggerMiddleware(logger,config){let tracer;try{tracer=instrumentation_exports.trace.getTracer(`request-logger`)}catch(error){logger.warn({error},`Failed to initialize OpenTelemetry tracer`),tracer=null}return(req,res,next)=>{let metadata=extractRequestMetadata(req,config);req.metadata=metadata;let startTime=Date.now(),span=null,requestId;if(tracer)try{span=tracer.startSpan(`${req.method} ${req.path}`,{kind:instrumentation_exports.SpanKind.SERVER,attributes:{"http.method":req.method,"http.url":req.url,"http.target":req.path,"http.host":(typeof req.headers.host==`string`?req.headers.host:req.headers[`:authority`])||`unknown`,"http.scheme":req.protocol,"http.user_agent":metadata.userAgent||`unknown`,"http.client_ip":metadata.ipAddress,"http.client_country":metadata.country}}),requestId=span.spanContext().traceId}catch(error){logger.warn({error},`Failed to create OpenTelemetry span`),span=null,requestId=crypto.randomUUID()}else logger.info(`OpenTelemetry tracer not available, skipping span creation`),span=null,requestId=crypto.randomUUID();let ctx=span?instrumentation_exports.trace.setSpan(instrumentation_exports.context.active(),span):instrumentation_exports.context.active(),skipLogging=(path$2=>path$2.startsWith(`/@`)||path$2.startsWith(`/node_modules/`)||path$2.startsWith(`/assets/`)||path$2.startsWith(`/public/`)||path$2.match(/\.(js|css|ico|png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot|map)$/)||path$2.includes(`/locales/`)||path$2.endsWith(`.ts`)||path$2.endsWith(`.tsx`)||path$2.endsWith(`.json`))(req.path);res.setHeader(`X-Request-Id`,requestId),req.requestId=requestId,res.on(`finish`,()=>{let duration=Date.now()-startTime;if(span)try{span.setAttributes({"http.status_code":res.statusCode,"http.response_content_length":res.get(`content-length`)||0}),res.statusCode>=400?span.setStatus({code:instrumentation_exports.SpanStatusCode.ERROR,message:`HTTP ${res.statusCode}`}):span.setStatus({code:instrumentation_exports.SpanStatusCode.OK}),span.end()}catch(error){logger.warn({error},`Failed to update OpenTelemetry span`)}skipLogging||instrumentation_exports.context.with(ctx,()=>{logger.info({requestId,method:req.method,url:req.path,status:res.statusCode,duration:`${duration}ms`},`Request completed`)})}),res.on(`close`,()=>{if(!(res.writableEnded||res.finished)){let duration=Date.now()-startTime;if(span)try{span.setStatus({code:instrumentation_exports.SpanStatusCode.ERROR,message:`Request closed unexpectedly`}),span.end()}catch(error){logger.warn({error},`Failed to update OpenTelemetry span`)}skipLogging||instrumentation_exports.context.with(ctx,()=>{logger.warn({requestId,method:req.method,url:req.path,duration:`${duration}ms`},`Request closed unexpectedly`)})}});let originalNext=next;next=error=>{if(error){let duration=Date.now()-startTime;if(span)try{span.recordException(error),span.setStatus({code:instrumentation_exports.SpanStatusCode.ERROR,message:error instanceof Error?error.message:String(error)}),span.end()}catch(spanError){logger.warn({error:spanError},`Failed to record exception in span`)}skipLogging||instrumentation_exports.context.with(ctx,()=>{logger.error({requestId,method:req.method,url:req.path,status:res.statusCode||500,duration:`${duration}ms`,error:error instanceof Error?error.message:String(error)},`Request failed`)})}originalNext(error)},instrumentation_exports.context.with(ctx,()=>next())}}function defineShutdownMiddleware(logger,isShuttingDown){return(req,res,next)=>{if(isShuttingDown()){logger.info({url:req.url,method:req.method},`Rejecting request during shutdown`),res.status(503).set(`Connection`,`close`).json({error:`Server is shutting down`});return}next()}}function defineTimeoutMiddleware(logger,timeoutMs=3e4){return(req,res,next)=>{let timeoutFired=!1,timeoutId=setTimeout(()=>{timeoutFired=!0,logger.warn({url:req.url,method:req.method,timeout:timeoutMs},`Request timeout`),res.headersSent||res.status(408).json({error:`Request timeout`}),res.removeListener(`finish`,clearTimeoutHandler),res.removeListener(`close`,clearTimeoutHandler)},timeoutMs),clearTimeoutHandler=()=>{timeoutFired||clearTimeout(timeoutId)};res.on(`finish`,clearTimeoutHandler),res.on(`close`,clearTimeoutHandler),next()}}const SPLIT_LOWER_UPPER_RE=/([\p{Ll}\d])(\p{Lu})/gu,SPLIT_UPPER_UPPER_RE=/(\p{Lu})([\p{Lu}][\p{Ll}])/gu,SPLIT_SEPARATE_NUMBER_RE=/(\d)\p{Ll}|(\p{L})\d/u,DEFAULT_STRIP_REGEXP=/[^\p{L}\d]+/giu,SPLIT_REPLACE_VALUE=`$1\0$2`,DEFAULT_PREFIX_SUFFIX_CHARACTERS=``;function split(value){let result=value.trim();result=result.replace(SPLIT_LOWER_UPPER_RE,SPLIT_REPLACE_VALUE).replace(SPLIT_UPPER_UPPER_RE,SPLIT_REPLACE_VALUE),result=result.replace(DEFAULT_STRIP_REGEXP,`\0`);let start=0,end=result.length;for(;result.charAt(start)===`\0`;)start++;if(start===end)return[];for(;result.charAt(end-1)===`\0`;)end--;return result.slice(start,end).split(/\0/g)}function splitSeparateNumbers(value){let words=split(value);for(let i=0;i<words.length;i++){let word=words[i],match=SPLIT_SEPARATE_NUMBER_RE.exec(word);if(match){let offset=match.index+(match[1]??match[2]).length;words.splice(i,1,word.slice(0,offset),word.slice(offset))}}return words}function camelCase(input,options){let[prefix,words,suffix]=splitPrefixSuffix(input,options),lower=lowerFactory(options?.locale),upper=upperFactory(options?.locale),transform=options?.mergeAmbiguousCharacters?capitalCaseTransformFactory(lower,upper):pascalCaseTransformFactory(lower,upper);return prefix+words.map((word,index)=>index===0?lower(word):transform(word,index)).join(options?.delimiter??``)+suffix}function lowerFactory(locale){return locale===!1?input=>input.toLowerCase():input=>input.toLocaleLowerCase(locale)}function upperFactory(locale){return locale===!1?input=>input.toUpperCase():input=>input.toLocaleUpperCase(locale)}function capitalCaseTransformFactory(lower,upper){return word=>`${upper(word[0])}${lower(word.slice(1))}`}function pascalCaseTransformFactory(lower,upper){return(word,index)=>{let char0=word[0];return(index>0&&char0>=`0`&&char0<=`9`?`_`+char0:upper(char0))+lower(word.slice(1))}}function splitPrefixSuffix(input,options={}){let splitFn=options.split??(options.separateNumbers?splitSeparateNumbers:split),prefixCharacters=options.prefixCharacters??``,suffixCharacters=options.suffixCharacters??``,prefixIndex=0,suffixIndex=input.length;for(;prefixIndex<input.length;){let char=input.charAt(prefixIndex);if(!prefixCharacters.includes(char))break;prefixIndex++}for(;suffixIndex>prefixIndex;){let index=suffixIndex-1,char=input.charAt(index);if(!suffixCharacters.includes(char))break;suffixIndex=index}return[input.slice(0,prefixIndex),splitFn(input.slice(prefixIndex,suffixIndex)),input.slice(suffixIndex)]}function getMiddlewareName(filename){return camelCase(basename(filename,`.ts`).replace(/^\d+_/,``))}async function loadMiddleware(middlewareDir,container,app){try{await fs$1.access(middlewareDir)}catch{return}let files=[];for await(let file of glob(`${middlewareDir}/**/*.ts`))!file.endsWith(`.test.ts`)&&!file.endsWith(`.spec.ts`)&&files.push(file);files.sort((a,b)=>basename(a).localeCompare(basename(b)));for(let file of files)try{let middleware=(await import(file)).default;if(middleware&&typeof middleware.handler==`function`){let name=middleware.name??getMiddlewareName(file);container.logger.debug({name,file},`Loading user middleware`),app.use(middleware.handler(container))}else container.logger.warn({file},`Middleware file missing default export with handler function`)}catch(err){throw container.logger.error({file,error:err instanceof Error?err.message:err},`Failed to load middleware`),err}}async function defineServer({container}){let isShuttingDown=!1,{host=`0.0.0.0`,port,timeout=3e4,bodyLimit=`1mb`,healthPath=`/health`,cors:corsConfig,helmet:helmetConfig,rateLimit:rateLimitConfigs,redisUrl}=container.server,app=express();app.locals.container=container;let redisClient=null;if(redisUrl&&rateLimitConfigs)try{redisClient=createClient({url:redisUrl}),redisClient.on(`error`,err=>{container.logger.error({error:err.message},`Redis client error`)}),await redisClient.connect(),container.logger.info(`Connected to Redis for rate limiting`)}catch(err){container.logger.error({error:err instanceof Error?err.message:err},`Failed to connect to Redis, falling back to in-memory rate limiting`),redisClient=null}if(app.use(defineShutdownMiddleware(container.logger,()=>isShuttingDown),defineTimeoutMiddleware(container.logger,timeout),defineRequestLoggerMiddleware(container.logger),defineHealthMiddleware(healthPath)),helmetConfig!==void 0&&app.use(helmet(helmetConfig)),corsConfig!==void 0&&app.use(cors(corsConfig)),rateLimitConfigs)for(let[index,config]of rateLimitConfigs.entries()){let limiter=rateLimit({windowMs:config.windowMs??60*1e3,limit:config.limit??100,standardHeaders:config.standardHeaders??`draft-8`,legacyHeaders:config.legacyHeaders??!1,skip:config.skip,keyGenerator:config.keyGenerator,handler:config.handler,message:config.message,statusCode:config.statusCode,requestPropertyName:config.requestPropertyName,skipFailedRequests:config.skipFailedRequests,skipSuccessfulRequests:config.skipSuccessfulRequests,requestWasSuccessful:config.requestWasSuccessful,validate:config.validate,store:redisClient?new RedisStore({sendCommand:(...args)=>redisClient.sendCommand(args),prefix:`rl:${index}:`}):config.store});app.use(limiter)}if(app.use(defineI18nMiddleware(container.i18n),express.json({limit:bodyLimit}),express.urlencoded({extended:!0,limit:bodyLimit})),await loadMiddleware(join(process.cwd(),`api`,`middleware`),container,app),app.get(`/`,(_req,res)=>{res.json({message:`${container.config.APP_NAME} server is running.`})}),process.env.NODE_ENV!==`production`){let{defineYouchErrorHandler}=await import(`./youch-handler-Jj6i1XIT.mjs`);app.use(defineYouchErrorHandler(container.logger))}else app.use(defineErrorHandlerMiddleware(container.logger));return{app,host,port,async start(){await new Promise((resolve,reject)=>{try{app.listen(port,host,()=>{resolve()})}catch(err){reject(err)}})},async close(){if(isShuttingDown=!0,app.uwsApp.close(),redisClient)try{await redisClient.destroy()}catch(err){container.logger.warn({error:err instanceof Error?err.message:err},`Error disconnecting from Redis`)}}}}function defineWorker(){return{async start(){await DBOS.launch()},async close(){await DBOS.shutdown()}}}const runtimeInfo=`(AppOS v${version} | Node ${process.version})`;var start_default=defineCommand({description:`Start the HTTP server and/or DBOS workflow worker`,aliases:[`s`],args:z.tuple([]),opts:z.object({service:z.enum([`server`,`worker`]).optional().meta({short:`s`,description:`Start only a specific service (default: both)`})}),async run(ctx){let{container,opts}=ctx,{logger}=container,startServer=!opts.service||opts.service===`server`,startWorker=!opts.service||opts.service===`worker`,server=null,worker=null,isShuttingDown=!1,shutdown=async signal=>{if(!isShuttingDown){isShuttingDown=!0,logger.info(`Shutdown initiated (${signal})`);try{server&&(await server.close(),logger.info(`HTTP server stopped`)),worker&&(await worker.close(),logger.info(`DBOS worker stopped`)),await ctx.cleanup()}catch(error){logger.error({error},`Shutdown error`)}process.exit(0)}};process.on(`SIGINT`,()=>shutdown(`SIGINT`)),process.on(`SIGTERM`,()=>shutdown(`SIGTERM`)),startWorker&&(worker=defineWorker(),await worker.start(),logger.info(`DBOS worker ready ${runtimeInfo}`)),startServer&&(server=await defineServer({container}),await server.start(),logger.info(`HTTP server ready at http://${server.host}:${server.port} ${runtimeInfo}`))}}),up_default=defineCommand({description:`Setup the infrastructure`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`up`);try{await ctx.spinner(`Starting containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`up`,`--wait`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}ctx.step(`Running schema migrations`),await runMigrations({ctx,migrationType:`schema`}),ctx.step(`Seeding databases`),await runSeeds({ctx}),await ctx.cleanup(),ctx.outro()}});const BUILTIN_COMMANDS={build:build_default,"db:data:gen":gen_default$1,"db:data:migrate":migrate_default$1,"db:schema:gen":gen_default,"db:schema:migrate":migrate_default,"db:seed":seed_default,down:down_default,preview:preview_default,repl:repl_default,reset:reset_default,start:start_default,up:up_default};function scanCommands(dir,baseDir=dir){let files=[];try{let entries=fs.readdirSync(dir,{withFileTypes:!0});for(let entry of entries){let fullPath=path.join(dir,entry.name);entry.isDirectory()?files.push(...scanCommands(fullPath,baseDir)):entry.isFile()&&entry.name.endsWith(`.ts`)&&!/\.(spec|test)\.tsx?$/.test(entry.name)&&files.push(fullPath)}}catch{}return files}function pathToCommandName(filePath,commandsDir){return path.relative(commandsDir,filePath).replace(/\.ts$/,``).replace(/\//g,`:`)}async function parseCommand(rawArgs,command){let parsedOptions={},positionalArgs=[],shortOptionMap=new Map;if(command.opts&&`shape`in command.opts){let schemaShape=command.opts.shape;for(let[key,value]of Object.entries(schemaShape)){let meta=value.meta?.();meta?.short&&typeof meta.short==`string`&&shortOptionMap.set(meta.short,key)}}for(let i=0;i<rawArgs.length;i++){let arg=rawArgs[i];if(arg.startsWith(`--`)){let[key,...valueParts]=arg.slice(2).split(`=`);if(valueParts.length>0)parsedOptions[key]=valueParts.join(`=`);else{let nextArg=rawArgs[i+1];nextArg&&!nextArg.startsWith(`-`)?(parsedOptions[key]=nextArg,i++):parsedOptions[key]=!0}}else if(arg.startsWith(`-`)&&arg.length>1){let shortOptions=arg.slice(1);if(shortOptions.length>1)for(let shortOpt of shortOptions){let longOpt=shortOptionMap.get(shortOpt);longOpt&&(parsedOptions[longOpt]=!0)}else{let shortOpt=shortOptions,longOpt=shortOptionMap.get(shortOpt)||shortOpt,nextArg=rawArgs[i+1];nextArg&&!nextArg.startsWith(`-`)?(parsedOptions[longOpt]=nextArg,i++):parsedOptions[longOpt]=!0}}else positionalArgs.push(arg)}let options={};if(command.opts&&`safeParse`in command.opts){let result=command.opts.safeParse(parsedOptions);if(!result.success){for(let issue of result.error.issues){let field=issue.path.join(`.`);console.error(colors.red(`Error:\n --${field} => ${issue.message.toLowerCase()}`))}process.exit(1)}options=result.data}let args=[];if(command.args&&`safeParse`in command.args){let result=command.args.safeParse(positionalArgs);if(!result.success){for(let issue of result.error.issues){let field=issue.path.join(`.`);console.error(colors.red(`Error:\n ${field} => ${issue.message.toLowerCase()}`))}process.exit(1)}args=result.data}return{args,options}}function showHelp(container,commands){console.log(`${colors.bold(container.config.APP_NAME)} - ${container.config.APP_DESC}\n`),console.log(`Commands:`);let maxLength=0;for(let[name,cmd]of commands){let aliasesText=cmd.aliases&&cmd.aliases.length>0?` (${cmd.aliases.join(`, `)})`:``,totalLength=name.length+aliasesText.length;maxLength=Math.max(maxLength,totalLength)}maxLength+=8;for(let[name,cmd]of commands){let aliasesText=cmd.aliases&&cmd.aliases.length>0?` (${cmd.aliases.join(`, `)})`:``,aliases=cmd.aliases&&cmd.aliases.length>0?colors.dim(` (${cmd.aliases.join(`, `)})`):``,nameWithAliases=`${colors.cyan(name)}${aliases}`,plainLength=name.length+aliasesText.length,padding=` `.repeat(Math.max(0,maxLength-plainLength));console.log(` ${nameWithAliases}${padding}${cmd.description||`No description`}`)}}function showCommandHelp(commandName,command){console.log(`${command.description||`No description`}`),console.log();let usage=`Usage: ${colors.cyan(commandName)}`;if(command.args){let def=command.args._def,typeName=def?.typeName||def?.type;if(typeName===`ZodTuple`||typeName===`tuple`){let items=def.items||[];for(let item of items){let zodItem=item,name=zodItem.meta?.()?.name||zodItem._def?.description||`arg`,isOptional=zodItem.isOptional?.()??!1;usage+=isOptional?` [${name}]`:` <${name}>`}if(def.rest){let restDesc=def.rest._def?.description||`args`;usage+=` [${restDesc}...]`}}else if(typeName===`ZodArray`||typeName===`array`){let displayName=command.args.meta?.()?.name||`args`,minItems=def.minLength?.value||0;minItems===0?usage+=` [${displayName}...]`:minItems===1?usage+=` <${displayName}>`:usage+=` <${displayName}...>`}}if(command.opts&&(usage+=` [options]`),console.log(usage),console.log(),command.args){let def=command.args._def,typeName=def?.typeName||def?.type;if(typeName===`ZodTuple`||typeName===`tuple`||typeName===`ZodArray`||typeName===`array`){if(console.log(`Arguments:`),typeName===`ZodTuple`||typeName===`tuple`){let items=def.items||[];for(let i=0;i<items.length;i++){let item=items[i],meta=item.meta?.(),name=meta?.name||item._def?.description||`arg${i+1}`,description=meta?.description||item._def?.description||name,required=item.isOptional?.()??!1?``:` (required)`;console.log(` ${colors.cyan(name)}${colors.dim(required)}\t\t${description}`)}if(def.rest){let restDesc=def.rest._def?.description||`additional args`;console.log(` ${colors.cyan(`${restDesc}...`)}\t\t${restDesc}`)}}else{let meta=command.args.meta?.(),displayName=meta?.name||`args`,description=meta?.description||``,minItems=def.minLength?.value||0,argDisplay=displayName;(minItems===0||minItems>1)&&(argDisplay=`${displayName}...`);let required=minItems>0?` (required)`:``;console.log(` ${colors.cyan(argDisplay)}${colors.dim(required)}\t\t${description}`)}console.log()}}if(console.log(`Options:`),console.log(` ${colors.cyan(`-h, --help`)}\t\t\tShow help for this command`),command.opts&&`shape`in command.opts){let schemaShape=command.opts.shape;for(let[key,schema]of Object.entries(schemaShape)){let zodType=schema,meta=zodType.meta?.(),isOptional=zodType.isOptional?.()??!0,isBoolean=zodType._def?.typeName===`ZodBoolean`,short=meta?.short?`-${meta.short}, `:` `,long=`--${key}`,value=isBoolean?``:` <value>`,required=isOptional?``:` (required)`,defaultValue=zodType._def?.defaultValue,defaultStr=defaultValue===void 0?``:`(default: ${JSON.stringify(defaultValue)})`,description=meta?.description||``;console.log(` ${colors.cyan(short+long+value)}\t\t${description} ${colors.dim(required+defaultStr)}`)}}}async function loadCommands(commandsDir,commands,aliases){let commandFiles=scanCommands(commandsDir);for(let filePath of commandFiles)try{let command=(await import(filePath)).default;if(command&&typeof command==`object`&&`run`in command){let commandName=pathToCommandName(filePath,commandsDir);if(commands.set(commandName,command),command.aliases)for(let alias of command.aliases)aliases.set(alias,commandName)}}catch(error){console.warn(colors.yellow(`Warning: Could not load command from ${filePath}: ${error instanceof Error?error.message:String(error)}`))}}async function defineCli(opts){let commands=new Map,aliases=new Map;for(let[name,command]of Object.entries(BUILTIN_COMMANDS))if(commands.set(name,command),command.aliases)for(let alias of command.aliases)aliases.set(alias,name);return await loadCommands(opts.commandsDir,commands,aliases),await loadEvents({container:opts.container}),DBOS.setConfig({name:opts.container.config.APP_NAME,runAdminServer:!1,systemDatabaseUrl:opts.container.worker.dbUrl}),await loadWorkflows({container:opts.container,dbos:DBOS}),{async run(args=process.argv.slice(2)){let[cmdName,...cmdArgs]=args;if(!cmdName||cmdName===`--help`||cmdName===`-h`){showHelp(opts.container,commands);return}let resolvedName=aliases.get(cmdName)||cmdName,command=commands.get(resolvedName);if(command||(console.error(colors.red(`Unknown command: ${cmdName}\n`)),showHelp(opts.container,commands),process.exit(1)),cmdArgs.includes(`--help`)||cmdArgs.includes(`-h`)){showCommandHelp(resolvedName,command);return}try{let{args:parsedArgs,options}=await parseCommand(cmdArgs,command),ctx=defineCommandContext(parsedArgs,options,opts.container);await command.run(ctx)}catch(error){error instanceof Error&&(console.error(colors.red(`Error:`),error.message),(error.message.includes(`argument`)||error.message.includes(`Invalid arguments`))&&(console.log(),console.log(`Run '${colors.cyan(`${resolvedName} --help`)}' to see usage information.`))),process.exit(1)}},showHelp(){showHelp(opts.container,commands)},showCommandHelp(command){showCommandHelp(Array.from(commands.entries()).find(([_,cmd])=>cmd===command)?.[0]||`unknown`,command)}}}const require$1=createRequire(import.meta.url),{GlobalLogger}=require$1(join(dirname(dirname(dirname(require$1.resolve(`@dbos-inc/dbos-sdk`)))),`dist/src/telemetry/logs`));async function main(){let{defineContainer}=await import(join(process.cwd(),APPOS_DIR,`main.ts`)),container=await defineContainer();GlobalLogger.prototype.info=(logEntry,metadata)=>{if(typeof logEntry==`string`){if(logEntry.startsWith(`Initializing DBOS`)||logEntry.startsWith(`System Database URL:`)||logEntry.startsWith(`Executor ID:`)||logEntry.startsWith(`Application version:`)||logEntry.startsWith(`No workflows to recover from application`)||logEntry.startsWith(`DBOS launched!`))return;container.logger.info(metadata,logEntry)}else container.logger.info(metadata,JSON.stringify(logEntry))},await(await defineCli({container,commandsDir:join(process.cwd(),APPOS_DIR,COMMANDS_DIR)})).run(process.argv.slice(2))}try{await main()}catch(err){console.error(err),process.exit(1)}export{};
|
|
338
|
+
`)};`,file=path.join(migrationFolder,`migration.sql`),snapshotFile=path.join(migrationFolder,`snapshot.json`);return await fs$1.writeFile(file,sqlContent),await fs$1.writeFile(snapshotFile,JSON.stringify(currentJson,null,2)),file});ctx.success(migrationFile),createdAny=!0}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}}createdAny||ctx.info(`Nothing to generate`)}async function runMigrations(opts){let{ctx,migrationType}=opts,{container}=ctx,databaseNames=Object.keys(container.db),originalLogLevel=container.logger.level;container.logger.level=`silent`,migrationType===`schema`&&await(0,import_system_database.ensureSystemDatabase)(container.worker.dbUrl,container.logger);let hasAnyMigrations=(await Promise.all(databaseNames.map(async name=>{let{migrationsFolder}=defineMigrationOpts(name,migrationType);return exists(migrationsFolder)}))).some(Boolean);if(databaseNames.length===0||!hasAnyMigrations){ctx.info(`Nothing to migrate`),container.logger.level=originalLogLevel;return}for(let name of databaseNames){let db=container.db[name],migrationOpts=defineMigrationOpts(name,migrationType);if(await exists(migrationOpts.migrationsFolder))try{await ctx.task(name,async()=>{await migrate(db,migrationOpts)})}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}}container.logger.level=originalLogLevel}async function runSeeds(opts){let{ctx}=opts,{container}=ctx,databaseNames=Object.keys(container.db);if(databaseNames.length===0){ctx.info(`Nothing to seed`);return}for(let name of databaseNames)await ensureDatabaseScaffolding(name);for(let name of databaseNames){let seedPath=path.join(process.cwd(),APPOS_DIR,DATABASES_DIR,name,`seed.ts`);try{await ctx.task(name,async()=>{let seedModule=await import(seedPath),seedFn=seedModule.default||seedModule.seed;if(typeof seedFn!=`function`)throw Error(`seed file does not export a function`);await seedFn(container)})}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}}}var gen_default$1=defineCommand({description:`Generate database data migrations`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:data:gen`),await generateMigrations({ctx,migrationType:`data`}),await ctx.cleanup(),ctx.outro()}}),migrate_default$1=defineCommand({description:`Run pending database data migrations`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:data:migrate`),await runMigrations({ctx,migrationType:`data`}),await ctx.cleanup(),ctx.outro()}}),gen_default=defineCommand({description:`Generate database schema migrations from schema changes`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:schema:gen`),await generateMigrations({ctx,migrationType:`schema`}),await ctx.cleanup(),ctx.outro()}}),migrate_default=defineCommand({description:`Run pending database schema migrations`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`db:schema:migrate`),await runMigrations({ctx,migrationType:`schema`}),await ctx.cleanup(),ctx.outro()}}),seed_default=defineCommand({description:`Seed databases with initial data`,args:z.tuple([]),opts:z.object({}),async run(ctx){await runSeeds({ctx}),await ctx.cleanup()}}),down_default=defineCommand({description:`Teardown the infrastructure`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`down`);try{await ctx.spinner(`Stopping containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`down`,`--remove-orphans`,`--timeout=0`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}ctx.outro()}}),preview_default=defineCommand({description:`Preview the application`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`preview`),ctx.step(`Starting containers (Ctrl+C to stop)`);let proc=spawn(`docker`,[`compose`,`--profile=app`,`up`,`--build`],{stdio:`inherit`,cwd:process.cwd()}),isShuttingDown=!1,cleanup=async()=>{if(!isShuttingDown){isShuttingDown=!0,proc.kill(`SIGTERM`),ctx.step(`Stopping containers`);try{await ctx.exec(`docker`,[`compose`,`--profile=app`,`down`,`--remove-orphans`,`--timeout=0`])}catch{}process.exit(0)}};process.on(`SIGINT`,cleanup),process.on(`SIGTERM`,cleanup),proc.on(`close`,()=>{isShuttingDown||cleanup()}),await new Promise(()=>{})}}),version=`0.3.0-0`;const runtimeInfo$1=`(AppOS v${version} | Node ${process.version})`;var repl_default=defineCommand({description:`Start an interactive REPL with container access`,aliases:[`r`],args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`repl`);let{container}=ctx,available=[],dbNames=Object.keys(container.db);dbNames.length>0&&available.push(`container.db.{${dbNames.join(`, `)}}`);let cacheNames=Object.keys(container.cache);cacheNames.length>0&&available.push(`container.cache.{${cacheNames.join(`, `)}}`);let otherKeys=Object.keys(container).filter(k=>k!==`db`&&k!==`cache`).map(k=>`container.${k}`);available.push(...otherKeys),ctx.info(`Starting REPL ${runtimeInfo$1}`),ctx.info(`Available: ${available.join(`, `)}`),ctx.line(``);let replServer=repl.start({prompt:`appos(${container.config.APP_NAME})> `,useColors:!0,useGlobal:!0,breakEvalOnSigint:!0});replServer.context.container=container,replServer.on(`exit`,async()=>{await ctx.cleanup(),ctx.info(`Bye`),process.exit(0)}),await new Promise(()=>{})}}),reset_default=defineCommand({description:`Reset the infrastructure`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`reset`);try{await ctx.spinner(`Stopping containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`down`,`--remove-orphans`,`--timeout=0`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}try{await ctx.spinner(`Starting containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`up`,`--wait`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}ctx.step(`Running schema migrations`),await runMigrations({ctx,migrationType:`schema`}),ctx.step(`Seeding databases`),await runSeeds({ctx}),await ctx.cleanup(),ctx.outro()}});function getErrorStatus(error){if(error&&typeof error==`object`&&`status`in error){let status=error.status;if(typeof status==`number`)return status}return error instanceof SyntaxError?400:500}function defineErrorHandlerMiddleware(logger){return(error,req,res,next)=>{let userAgent=req.headers[`user-agent`];if(logger.error({error:error.message,stack:error.stack,url:req.url,method:req.method,userAgent:typeof userAgent==`string`?userAgent:userAgent?.[0],ip:req.ip},`Unhandled request error`),res.headersSent)return next(error);let isDevelopment=process.env.NODE_ENV!==`production`;res.status(getErrorStatus(error)).json({error:`Internal server error`,...isDevelopment&&{message:error.message,stack:error.stack}})}}function defineHealthMiddleware(path$2=`/health`){return(req,res,next)=>{if(req.path!==path$2)return next();res.status(200).json({status:`healthy`,timestamp:new Date().toISOString(),uptime:process.uptime()})}}function defineI18nMiddleware(i18n){return(req,res,next)=>{let acceptLanguage=req.headers[`accept-language`],detectedLng=`en`;if(acceptLanguage){let parsed=acceptLanguage.split(`,`)[0].split(`;`)[0].trim();parsed&&parsed.length>0&&(detectedLng=parsed)}req.dir=i18n.dir(detectedLng),req.language=detectedLng,req.languages=i18n.languages,req.t=i18n.getFixedT(detectedLng),next()}}var instrumentation_exports={};import*as import__opentelemetry_api from"@opentelemetry/api";__reExport(instrumentation_exports,import__opentelemetry_api),register(`@opentelemetry/instrumentation/hook.mjs`,import.meta.url);const service={name:process.env.APP_NAME||`appos`,version:process.env.APP_VERSION||`development`};new NodeSDK({resource:resourceFromAttributes({[ATTR_SERVICE_NAME]:service.name,[ATTR_SERVICE_VERSION]:service.version}),spanProcessors:[new BatchSpanProcessor(new OTLPTraceExporter({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT||`http://localhost:4318/v1/traces`,headers:process.env.OTEL_EXPORTER_OTLP_HEADERS?JSON.parse(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}))],instrumentations:[getNodeAutoInstrumentations({"@opentelemetry/instrumentation-fs":{enabled:!1},"@opentelemetry/instrumentation-dns":{enabled:!1}}),new PinoInstrumentation({logHook:(_span,record)=>{record[`service.name`]=service.name}})]}).start();const CF_COUNTRY_HEADER=`cf-ipcountry`;function extractRequestMetadata(req,config){config?.injectCountry&&!req.headers[CF_COUNTRY_HEADER]&&(req.headers[CF_COUNTRY_HEADER]=config.injectCountry);let forwardedFor=req.headers[`x-forwarded-for`],ipAddress;ipAddress=typeof forwardedFor==`string`?forwardedFor.split(`,`)[0].trim():Array.isArray(forwardedFor)&&forwardedFor.length>0?forwardedFor[0].split(`,`)[0].trim():req.socket.remoteAddress||``;let userAgent=req.headers[`user-agent`]||``,country=req.headers[CF_COUNTRY_HEADER]||``;return{ipAddress,userAgent,country}}function defineRequestLoggerMiddleware(logger,config){let tracer;try{tracer=instrumentation_exports.trace.getTracer(`request-logger`)}catch(error){logger.warn({error},`Failed to initialize OpenTelemetry tracer`),tracer=null}return(req,res,next)=>{let metadata=extractRequestMetadata(req,config);req.metadata=metadata;let startTime=Date.now(),span=null,requestId;if(tracer)try{span=tracer.startSpan(`${req.method} ${req.path}`,{kind:instrumentation_exports.SpanKind.SERVER,attributes:{"http.method":req.method,"http.url":req.url,"http.target":req.path,"http.host":(typeof req.headers.host==`string`?req.headers.host:req.headers[`:authority`])||`unknown`,"http.scheme":req.protocol,"http.user_agent":metadata.userAgent||`unknown`,"http.client_ip":metadata.ipAddress,"http.client_country":metadata.country}}),requestId=span.spanContext().traceId}catch(error){logger.warn({error},`Failed to create OpenTelemetry span`),span=null,requestId=crypto.randomUUID()}else logger.info(`OpenTelemetry tracer not available, skipping span creation`),span=null,requestId=crypto.randomUUID();let ctx=span?instrumentation_exports.trace.setSpan(instrumentation_exports.context.active(),span):instrumentation_exports.context.active(),skipLogging=(path$2=>path$2.startsWith(`/@`)||path$2.startsWith(`/node_modules/`)||path$2.startsWith(`/assets/`)||path$2.startsWith(`/public/`)||path$2.match(/\.(js|css|ico|png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot|map)$/)||path$2.includes(`/locales/`)||path$2.endsWith(`.ts`)||path$2.endsWith(`.tsx`)||path$2.endsWith(`.json`))(req.path);res.setHeader(`X-Request-Id`,requestId),req.requestId=requestId,res.on(`finish`,()=>{let duration=Date.now()-startTime;if(span)try{span.setAttributes({"http.status_code":res.statusCode,"http.response_content_length":res.get(`content-length`)||0}),res.statusCode>=400?span.setStatus({code:instrumentation_exports.SpanStatusCode.ERROR,message:`HTTP ${res.statusCode}`}):span.setStatus({code:instrumentation_exports.SpanStatusCode.OK}),span.end()}catch(error){logger.warn({error},`Failed to update OpenTelemetry span`)}skipLogging||instrumentation_exports.context.with(ctx,()=>{logger.info({requestId,method:req.method,url:req.path,status:res.statusCode,duration:`${duration}ms`},`Request completed`)})}),res.on(`close`,()=>{if(!(res.writableEnded||res.finished)){let duration=Date.now()-startTime;if(span)try{span.setStatus({code:instrumentation_exports.SpanStatusCode.ERROR,message:`Request closed unexpectedly`}),span.end()}catch(error){logger.warn({error},`Failed to update OpenTelemetry span`)}skipLogging||instrumentation_exports.context.with(ctx,()=>{logger.warn({requestId,method:req.method,url:req.path,duration:`${duration}ms`},`Request closed unexpectedly`)})}});let originalNext=next;next=error=>{if(error){let duration=Date.now()-startTime;if(span)try{span.recordException(error),span.setStatus({code:instrumentation_exports.SpanStatusCode.ERROR,message:error instanceof Error?error.message:String(error)}),span.end()}catch(spanError){logger.warn({error:spanError},`Failed to record exception in span`)}skipLogging||instrumentation_exports.context.with(ctx,()=>{logger.error({requestId,method:req.method,url:req.path,status:res.statusCode||500,duration:`${duration}ms`,error:error instanceof Error?error.message:String(error)},`Request failed`)})}originalNext(error)},instrumentation_exports.context.with(ctx,()=>next())}}function defineShutdownMiddleware(logger,isShuttingDown){return(req,res,next)=>{if(isShuttingDown()){logger.info({url:req.url,method:req.method},`Rejecting request during shutdown`),res.status(503).set(`Connection`,`close`).json({error:`Server is shutting down`});return}next()}}function defineTimeoutMiddleware(logger,timeoutMs=3e4){return(req,res,next)=>{let timeoutFired=!1,timeoutId=setTimeout(()=>{timeoutFired=!0,logger.warn({url:req.url,method:req.method,timeout:timeoutMs},`Request timeout`),res.headersSent||res.status(408).json({error:`Request timeout`}),res.removeListener(`finish`,clearTimeoutHandler),res.removeListener(`close`,clearTimeoutHandler)},timeoutMs),clearTimeoutHandler=()=>{timeoutFired||clearTimeout(timeoutId)};res.on(`finish`,clearTimeoutHandler),res.on(`close`,clearTimeoutHandler),next()}}function getMiddlewareName(filename){return camelCase(basename(filename,`.ts`).replace(/^\d+_/,``))}async function loadMiddleware(middlewareDir,container,app){try{await fs$1.access(middlewareDir)}catch{return}let files=[];for await(let file of glob(`${middlewareDir}/**/*.${FILE_EXT}`))!file.endsWith(`.test.ts`)&&!file.endsWith(`.spec.ts`)&&!file.endsWith(`.test.js`)&&!file.endsWith(`.spec.js`)&&files.push(file);files.sort((a,b)=>basename(a).localeCompare(basename(b)));for(let file of files)try{let middleware=(await import(file)).default;if(middleware&&typeof middleware.handler==`function`){let name=middleware.name??getMiddlewareName(file);container.logger.debug({name,file},`Loading user middleware`),app.use(middleware.handler(container))}else container.logger.warn({file},`Middleware file missing default export with handler function`)}catch(err){throw container.logger.error({file,error:err instanceof Error?err.message:err},`Failed to load middleware`),err}}const outputDir=resolve(PUBLIC_DIR,`openapi`);function extractVersion(path$2){return path$2.match(/^\/(v\d+)/)?.[1]}function convertToOpenAPIPath(reactRouterPath){return reactRouterPath.replace(/:(\w+)/g,`{$1}`)}function buildPathObject(path$2,spec){let openApiPath=convertToOpenAPIPath(path$2),methodConfig={summary:spec.summary,description:spec.description};(spec.request?.params||spec.request?.query||spec.request?.headers)&&(methodConfig.requestParams={},spec.request.params&&(methodConfig.requestParams.path=spec.request.params),spec.request.query&&(methodConfig.requestParams.query=spec.request.query),spec.request.headers&&(methodConfig.requestParams.header=spec.request.headers)),spec.request?.body&&(methodConfig.requestBody={content:{"application/json":{schema:spec.request.body}}}),methodConfig.responses={};for(let[statusCode,response]of Object.entries(spec.responses))methodConfig.responses[statusCode]={description:response.description,content:{"application/json":{schema:response.content[`application/json`].schema}}};return{path:openApiPath,config:methodConfig}}function generateOpenAPIDocument(routes,version$1,config){let paths={};for(let route of routes){if(route.version!==version$1)continue;let apiPath=route.path.replace(`/${version$1}`,``)||`/`;for(let spec of route.openAPISpec){let{path:openApiPath,config:methodConfig}=buildPathObject(apiPath,spec);paths[openApiPath]||(paths[openApiPath]={}),paths[openApiPath][spec.method]=methodConfig}}return createDocument({openapi:`3.1.0`,info:config?.info||{title:`API ${version$1.toUpperCase()}`,version:version$1.replace(`v`,``),description:`OpenAPI specification for ${version$1} API`},servers:config?.servers||[{url:`http://localhost:8000/${version$1}`,description:process.env.NODE_ENV===`production`?`Production server`:`Development server`}],paths})}async function scanAPIRoutes(container){let fullPath=resolve(APPOS_DIR,ROUTES_DIR);try{await access(fullPath)}catch(error){return container.logger.error({error},`OpenAPI routes directory not found`),[]}let routeManifest=await remixRoutesOptionAdapter(defineRoutes=>flatRoutes(ROUTES_DIR,defineRoutes,{appDir:APPOS_DIR,ignoredRouteFiles:[`**/.*`,`**/*.{spec,test}.{ts,tsx}`,`**/*-????????.{js,ts}`]})),routes=[];for(let[routeId,route]of Object.entries(routeManifest)){let absolutePath=resolve(APPOS_DIR,route.file).replace(/.ts$/,process.env.NODE_ENV===`production`?`.js`:`.ts`);try{let exported=(await import(absolutePath)).default;if(!exported||isEmpty(exported)||/\/openapi.(j|t)s$/.test(absolutePath))continue;if(!exported?.handlers&&!exported?.openAPISpec){container.logger.warn(`Missing default export with 'defineOpenAPI' for '${APPOS_DIR}/${route.file}'`);continue}let routePath=`/${route.path}`;routes.push({path:routePath,filePath:absolutePath,handlers:exported.handlers,openAPISpec:exported.openAPISpec,version:extractVersion(routePath)})}catch(error){container.logger.error(error,`Error loading route ${route.file}:`)}}return routes}function registerRoutes(app,routes){for(let route of routes)for(let[method,handler]of Object.entries(route.handlers))app[method.toLowerCase()](route.path,handler)}async function loadVersionConfig(container,version$1){let configPath=resolve(APPOS_DIR,ROUTES_DIR,`${version$1}+/openapi.${FILE_EXT}`);try{let configFn=(await import(configPath)).default;return configFn?configFn(container):void 0}catch{return}}async function writeOpenAPISpecs(container,routes){let versions=[...new Set(routes.map(r=>r.version).filter(Boolean))];versions.length>0&&await mkdir(outputDir,{recursive:!0});for(let version$1 of versions){let doc=generateOpenAPIDocument(routes,version$1,await loadVersionConfig(container,version$1));await writeFile(join(outputDir,`${version$1}.json`),JSON.stringify(doc,null,2),`utf-8`)}}async function loadAndRegisterAPIRoutes(app){let routes=await scanAPIRoutes(app.locals.container);registerRoutes(app,routes),process.env.NODE_ENV!==`production`&&await writeOpenAPISpecs(app.locals.container,routes)}async function defineServer({container}){let isShuttingDown=!1,{host=`0.0.0.0`,port,timeout=3e4,bodyLimit=`1mb`,healthPath=`/health`,cors:corsConfig,helmet:helmetConfig,rateLimit:rateLimitConfigs,redisUrl}=container.server,app=express();app.locals.container=container;let redisClient=null;if(redisUrl&&rateLimitConfigs)try{redisClient=createClient({url:redisUrl}),redisClient.on(`error`,err=>{container.logger.error({error:err.message},`Redis client error`)}),await redisClient.connect(),container.logger.info(`Connected to Redis for rate limiting`)}catch(err){container.logger.error({error:err instanceof Error?err.message:err},`Failed to connect to Redis, falling back to in-memory rate limiting`),redisClient=null}if(app.use(defineShutdownMiddleware(container.logger,()=>isShuttingDown),defineTimeoutMiddleware(container.logger,timeout),defineRequestLoggerMiddleware(container.logger),defineHealthMiddleware(healthPath)),helmetConfig!==void 0&&app.use(helmet(helmetConfig)),corsConfig!==void 0&&app.use(cors(corsConfig)),rateLimitConfigs)for(let[index,config]of rateLimitConfigs.entries()){let limiter=rateLimit({windowMs:config.windowMs??60*1e3,limit:config.limit??100,standardHeaders:config.standardHeaders??`draft-8`,legacyHeaders:config.legacyHeaders??!1,skip:config.skip,keyGenerator:config.keyGenerator,handler:config.handler,message:config.message,statusCode:config.statusCode,requestPropertyName:config.requestPropertyName,skipFailedRequests:config.skipFailedRequests,skipSuccessfulRequests:config.skipSuccessfulRequests,requestWasSuccessful:config.requestWasSuccessful,validate:config.validate,store:redisClient?new RedisStore({sendCommand:(...args)=>redisClient.sendCommand(args),prefix:`rl:${index}:`}):config.store});app.use(limiter)}if(app.use(defineI18nMiddleware(container.i18n),express.json({limit:bodyLimit}),express.urlencoded({extended:!0,limit:bodyLimit})),await loadMiddleware(join(process.cwd(),`api`,`middleware`),container,app),app.get(`/`,(_req,res)=>{res.json({message:`${container.config.APP_NAME} server is running.`})}).all(`${container.auth.options.basePath}/*`,toNodeHandler(container.auth)),await loadAndRegisterAPIRoutes(app),app.use(express.static(resolve(PUBLIC_DIR))),process.env.NODE_ENV!==`production`){let{defineYouchErrorHandler}=await import(`./youch-handler-Jj6i1XIT.mjs`);app.use(defineYouchErrorHandler(container.logger))}else app.use(defineErrorHandlerMiddleware(container.logger));return{app,host,port,async start(){await new Promise((resolve$1,reject)=>{try{app.listen(port,host,()=>{resolve$1()})}catch(err){reject(err)}})},async close(){if(isShuttingDown=!0,app.uwsApp.close(),redisClient)try{await redisClient.destroy()}catch(err){container.logger.warn({error:err instanceof Error?err.message:err},`Error disconnecting from Redis`)}}}}function defineWorker(){return{async start(){await DBOS.launch()},async close(){await DBOS.shutdown()}}}const runtimeInfo=`(AppOS v${version} | Node ${process.version})`;var start_default=defineCommand({description:`Start the HTTP server and/or DBOS workflow worker`,aliases:[`s`],args:z.tuple([]),opts:z.object({service:z.enum([`server`,`worker`]).optional().meta({short:`s`,description:`Start only a specific service (default: both)`})}),async run(ctx){let{container,opts}=ctx,{logger}=container,startServer=!opts.service||opts.service===`server`,startWorker=!opts.service||opts.service===`worker`,server=null,worker=null,isShuttingDown=!1,shutdown=async signal=>{if(!isShuttingDown){isShuttingDown=!0,logger.info(`Shutdown initiated (${signal})`);try{server&&(await server.close(),logger.info(`HTTP server stopped`)),worker&&(await worker.close(),logger.info(`DBOS worker stopped`)),await ctx.cleanup()}catch(error){logger.error({error},`Shutdown error`)}process.exit(0)}};process.on(`SIGINT`,()=>shutdown(`SIGINT`)),process.on(`SIGTERM`,()=>shutdown(`SIGTERM`)),startWorker&&(worker=defineWorker(),await worker.start(),logger.info(`DBOS worker ready ${runtimeInfo}`)),startServer&&(server=await defineServer({container}),await server.start(),logger.info(`HTTP server ready at http://${server.host}:${server.port} ${runtimeInfo}`))}}),up_default=defineCommand({description:`Setup the infrastructure`,args:z.tuple([]),opts:z.object({}),async run(ctx){ctx.intro(`up`);try{await ctx.spinner(`Starting containers`,()=>ctx.exec(`docker`,[`compose`,`--profile=infra`,`up`,`--wait`]))}catch(error){ctx.fail(error instanceof Error?error.message:String(error))}ctx.step(`Running schema migrations`),await runMigrations({ctx,migrationType:`schema`}),ctx.step(`Seeding databases`),await runSeeds({ctx}),await ctx.cleanup(),ctx.outro()}});const BUILTIN_COMMANDS={build:build_default,"db:data:gen":gen_default$1,"db:data:migrate":migrate_default$1,"db:schema:gen":gen_default,"db:schema:migrate":migrate_default,"db:seed":seed_default,down:down_default,preview:preview_default,repl:repl_default,reset:reset_default,start:start_default,up:up_default};function scanCommands(dir,baseDir=dir){let files=[];try{let entries=fs.readdirSync(dir,{withFileTypes:!0});for(let entry of entries){let fullPath=path.join(dir,entry.name);entry.isDirectory()?files.push(...scanCommands(fullPath,baseDir)):entry.isFile()&&entry.name.endsWith(`.${FILE_EXT}`)&&!/\.(spec|test)\.[jt]sx?$/.test(entry.name)&&files.push(fullPath)}}catch{}return files}function pathToCommandName(filePath,commandsDir){return path.relative(commandsDir,filePath).replace(RegExp(`\\.${FILE_EXT}$`),``).replace(/\//g,`:`)}async function parseCommand(rawArgs,command){let parsedOptions={},positionalArgs=[],shortOptionMap=new Map;if(command.opts&&`shape`in command.opts){let schemaShape=command.opts.shape;for(let[key,value]of Object.entries(schemaShape)){let meta=value.meta?.();meta?.short&&typeof meta.short==`string`&&shortOptionMap.set(meta.short,key)}}for(let i=0;i<rawArgs.length;i++){let arg=rawArgs[i];if(arg.startsWith(`--`)){let[key,...valueParts]=arg.slice(2).split(`=`);if(valueParts.length>0)parsedOptions[key]=valueParts.join(`=`);else{let nextArg=rawArgs[i+1];nextArg&&!nextArg.startsWith(`-`)?(parsedOptions[key]=nextArg,i++):parsedOptions[key]=!0}}else if(arg.startsWith(`-`)&&arg.length>1){let shortOptions=arg.slice(1);if(shortOptions.length>1)for(let shortOpt of shortOptions){let longOpt=shortOptionMap.get(shortOpt);longOpt&&(parsedOptions[longOpt]=!0)}else{let shortOpt=shortOptions,longOpt=shortOptionMap.get(shortOpt)||shortOpt,nextArg=rawArgs[i+1];nextArg&&!nextArg.startsWith(`-`)?(parsedOptions[longOpt]=nextArg,i++):parsedOptions[longOpt]=!0}}else positionalArgs.push(arg)}let options={};if(command.opts&&`safeParse`in command.opts){let result=command.opts.safeParse(parsedOptions);if(!result.success){for(let issue of result.error.issues){let field=issue.path.join(`.`);console.error(colors.red(`Error:\n --${field} => ${issue.message.toLowerCase()}`))}process.exit(1)}options=result.data}let args=[];if(command.args&&`safeParse`in command.args){let result=command.args.safeParse(positionalArgs);if(!result.success){for(let issue of result.error.issues){let field=issue.path.join(`.`);console.error(colors.red(`Error:\n ${field} => ${issue.message.toLowerCase()}`))}process.exit(1)}args=result.data}return{args,options}}function showHelp(container,commands){console.log(`${colors.bold(container.config.APP_NAME)} - ${container.config.APP_DESC}\n`),console.log(`Commands:`);let maxLength=0;for(let[name,cmd]of commands){let aliasesText=cmd.aliases&&cmd.aliases.length>0?` (${cmd.aliases.join(`, `)})`:``,totalLength=name.length+aliasesText.length;maxLength=Math.max(maxLength,totalLength)}maxLength+=8;for(let[name,cmd]of commands){let aliasesText=cmd.aliases&&cmd.aliases.length>0?` (${cmd.aliases.join(`, `)})`:``,aliases=cmd.aliases&&cmd.aliases.length>0?colors.dim(` (${cmd.aliases.join(`, `)})`):``,nameWithAliases=`${colors.cyan(name)}${aliases}`,plainLength=name.length+aliasesText.length,padding=` `.repeat(Math.max(0,maxLength-plainLength));console.log(` ${nameWithAliases}${padding}${cmd.description||`No description`}`)}}function showCommandHelp(commandName,command){console.log(`${command.description||`No description`}`),console.log();let usage=`Usage: ${colors.cyan(commandName)}`;if(command.args){let def=command.args._def,typeName=def?.typeName||def?.type;if(typeName===`ZodTuple`||typeName===`tuple`){let items=def.items||[];for(let item of items){let zodItem=item,name=zodItem.meta?.()?.name||zodItem._def?.description||`arg`,isOptional=zodItem.isOptional?.()??!1;usage+=isOptional?` [${name}]`:` <${name}>`}if(def.rest){let restDesc=def.rest._def?.description||`args`;usage+=` [${restDesc}...]`}}else if(typeName===`ZodArray`||typeName===`array`){let displayName=command.args.meta?.()?.name||`args`,minItems=def.minLength?.value||0;minItems===0?usage+=` [${displayName}...]`:minItems===1?usage+=` <${displayName}>`:usage+=` <${displayName}...>`}}if(command.opts&&(usage+=` [options]`),console.log(usage),console.log(),command.args){let def=command.args._def,typeName=def?.typeName||def?.type;if(typeName===`ZodTuple`||typeName===`tuple`||typeName===`ZodArray`||typeName===`array`){if(console.log(`Arguments:`),typeName===`ZodTuple`||typeName===`tuple`){let items=def.items||[];for(let i=0;i<items.length;i++){let item=items[i],meta=item.meta?.(),name=meta?.name||item._def?.description||`arg${i+1}`,description=meta?.description||item._def?.description||name,required=item.isOptional?.()??!1?``:` (required)`;console.log(` ${colors.cyan(name)}${colors.dim(required)}\t\t${description}`)}if(def.rest){let restDesc=def.rest._def?.description||`additional args`;console.log(` ${colors.cyan(`${restDesc}...`)}\t\t${restDesc}`)}}else{let meta=command.args.meta?.(),displayName=meta?.name||`args`,description=meta?.description||``,minItems=def.minLength?.value||0,argDisplay=displayName;(minItems===0||minItems>1)&&(argDisplay=`${displayName}...`);let required=minItems>0?` (required)`:``;console.log(` ${colors.cyan(argDisplay)}${colors.dim(required)}\t\t${description}`)}console.log()}}if(console.log(`Options:`),console.log(` ${colors.cyan(`-h, --help`)}\t\t\tShow help for this command`),command.opts&&`shape`in command.opts){let schemaShape=command.opts.shape;for(let[key,schema]of Object.entries(schemaShape)){let zodType=schema,meta=zodType.meta?.(),isOptional=zodType.isOptional?.()??!0,isBoolean=zodType._def?.typeName===`ZodBoolean`,short=meta?.short?`-${meta.short}, `:` `,long=`--${key}`,value=isBoolean?``:` <value>`,required=isOptional?``:` (required)`,defaultValue=zodType._def?.defaultValue,defaultStr=defaultValue===void 0?``:`(default: ${JSON.stringify(defaultValue)})`,description=meta?.description||``;console.log(` ${colors.cyan(short+long+value)}\t\t${description} ${colors.dim(required+defaultStr)}`)}}}async function loadCommands(commandsDir,commands,aliases){let commandFiles=scanCommands(commandsDir);for(let filePath of commandFiles)try{let command=(await import(filePath)).default;if(command&&typeof command==`object`&&`run`in command){let commandName=pathToCommandName(filePath,commandsDir);if(commands.set(commandName,command),command.aliases)for(let alias of command.aliases)aliases.set(alias,commandName)}}catch(error){console.warn(colors.yellow(`Warning: Could not load command from ${filePath}: ${error instanceof Error?error.message:String(error)}`))}}async function defineCli(opts){let commands=new Map,aliases=new Map;for(let[name,command]of Object.entries(BUILTIN_COMMANDS))if(commands.set(name,command),command.aliases)for(let alias of command.aliases)aliases.set(alias,name);return await loadCommands(opts.commandsDir,commands,aliases),await loadEvents({container:opts.container}),DBOS.setConfig({name:opts.container.config.APP_NAME,runAdminServer:!1,systemDatabaseUrl:opts.container.worker.dbUrl}),await loadWorkflows({container:opts.container,dbos:DBOS}),{async run(args=process.argv.slice(2)){let[cmdName,...cmdArgs]=args;if(!cmdName||cmdName===`--help`||cmdName===`-h`){showHelp(opts.container,commands);return}let resolvedName=aliases.get(cmdName)||cmdName,command=commands.get(resolvedName);if(command||(console.error(colors.red(`Unknown command: ${cmdName}\n`)),showHelp(opts.container,commands),process.exit(1)),cmdArgs.includes(`--help`)||cmdArgs.includes(`-h`)){showCommandHelp(resolvedName,command);return}try{let{args:parsedArgs,options}=await parseCommand(cmdArgs,command),ctx=defineCommandContext(parsedArgs,options,opts.container);await command.run(ctx)}catch(error){error instanceof Error&&(console.error(colors.red(`Error:`),error.message),(error.message.includes(`argument`)||error.message.includes(`Invalid arguments`))&&(console.log(),console.log(`Run '${colors.cyan(`${resolvedName} --help`)}' to see usage information.`))),process.exit(1)}},showHelp(){showHelp(opts.container,commands)},showCommandHelp(command){showCommandHelp(Array.from(commands.entries()).find(([_,cmd])=>cmd===command)?.[0]||`unknown`,command)}}}const require$1=createRequire(import.meta.url),{GlobalLogger}=require$1(join(dirname(dirname(dirname(require$1.resolve(`@dbos-inc/dbos-sdk`)))),`dist/src/telemetry/logs`));async function main(){let{defineContainer}=await import(join(process.cwd(),APPOS_DIR,`main.${FILE_EXT}`)),container=await defineContainer();GlobalLogger.prototype.info=(logEntry,metadata)=>{if(typeof logEntry==`string`){if(logEntry.startsWith(`Initializing DBOS`)||logEntry.startsWith(`System Database URL:`)||logEntry.startsWith(`Executor ID:`)||logEntry.startsWith(`Application version:`)||logEntry.startsWith(`No workflows to recover from application`)||logEntry.startsWith(`DBOS launched!`))return;container.logger.info(metadata,logEntry)}else container.logger.info(metadata,JSON.stringify(logEntry))},await(await defineCli({container,commandsDir:join(process.cwd(),APPOS_DIR,COMMANDS_DIR)})).run(process.argv.slice(2))}try{await main()}catch(err){console.error(err),process.exit(1)}export{};
|