From 7890319c4d3163cf2ad103be67016574ffc36630 Mon Sep 17 00:00:00 2001 From: Trent Mick Date: Tue, 11 Aug 2026 12:57:36 -0700 Subject: [PATCH] test: drop azure functions v3 tests Azure Functions v3 is no longer supported. See: https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=isolated-process%2Cv4&pivots=programming-language-javascript#retired-versions --- .../azure-functions-v3.test.js | 643 ---------------- .../fixtures/azfunc3/.gitignore | 50 -- .../fixtures/azfunc3/HttpFn1/function.json | 19 - .../fixtures/azfunc3/HttpFn1/index.js | 14 - .../azfunc3/HttpFnBindingsRes/function.json | 19 - .../azfunc3/HttpFnBindingsRes/index.js | 13 - .../azfunc3/HttpFnContextDone/function.json | 19 - .../azfunc3/HttpFnContextDone/index.js | 16 - .../azfunc3/HttpFnDistTraceA/function.json | 19 - .../azfunc3/HttpFnDistTraceA/index.js | 49 -- .../azfunc3/HttpFnDistTraceB/function.json | 19 - .../azfunc3/HttpFnDistTraceB/index.js | 12 - .../azfunc3/HttpFnError/function.json | 19 - .../fixtures/azfunc3/HttpFnError/index.js | 9 - .../azfunc3/HttpFnReturnContext/function.json | 19 - .../azfunc3/HttpFnReturnContext/index.js | 18 - .../azfunc3/HttpFnReturnObject/function.json | 19 - .../azfunc3/HttpFnReturnObject/index.js | 12 - .../HttpFnReturnResponseData/function.json | 19 - .../azfunc3/HttpFnReturnResponseData/index.js | 13 - .../azfunc3/HttpFnReturnString/function.json | 19 - .../azfunc3/HttpFnReturnString/index.js | 12 - .../azfunc3/HttpFnRouteTemplate/function.json | 20 - .../azfunc3/HttpFnRouteTemplate/index.js | 12 - .../fixtures/azfunc3/README.md | 3 - .../fixtures/azfunc3/host.json | 15 - .../fixtures/azfunc3/initapm.js | 10 - .../fixtures/azfunc3/local.settings.json | 16 - .../fixtures/azfunc3/package-lock.json | 712 ------------------ .../fixtures/azfunc3/package.json | 13 - 30 files changed, 1852 deletions(-) delete mode 100644 test/instrumentation/azure-functions/azure-functions-v3.test.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/.gitignore delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/function.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/index.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/README.md delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/host.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/initapm.js delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/local.settings.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/package-lock.json delete mode 100644 test/instrumentation/azure-functions/fixtures/azfunc3/package.json diff --git a/test/instrumentation/azure-functions/azure-functions-v3.test.js b/test/instrumentation/azure-functions/azure-functions-v3.test.js deleted file mode 100644 index 9c368cade9..0000000000 --- a/test/instrumentation/azure-functions/azure-functions-v3.test.js +++ /dev/null @@ -1,643 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -'use strict'; - -// Test Azure Functions programming model v3. - -const assert = require('assert'); -const { exec, spawn } = require('child_process'); -const fs = require('fs'); -const os = require('os'); -const path = require('path'); - -const semver = require('semver'); -const tape = require('tape'); -const treekill = require('tree-kill'); - -const { MockAPMServer } = require('../../_mock_apm_server'); -const { formatForTComment } = require('../../_utils'); -const { - getEventField, - makeTestRequest, - waitForServerReady, -} = require('./azfunctestutils'); - -// Azure Functions programming model v3 supports node 14.x-20.x: -// https://learn.microsoft.com/en-ca/azure/azure-functions/functions-reference-node?tabs=javascript%2Cwindows%2Cazure-cli&pivots=nodejs-model-v4#supported-versions -// However, let's only test with node 18.x for now. The testing involves -// installing the ridiculously large "azure-functions-core-tools" dep, so it -// isn't worth testing all versions. -if (!semver.satisfies(process.version, '^18.0.1')) { - console.log( - '# SKIP Azure Functions v3 tests, only testing with Node.js v18.latest', - ); - process.exit(); -} else if (os.platform() === 'win32') { - console.log( - '# SKIP Azure Functions tests on Windows because of flaky azure-functions-core-tools install (see https://github.com/elastic/apm-agent-nodejs/issues/3107)', - ); - process.exit(); -} - -/** - * Assert that the given `apmEvents` (events that the mock APM server received) - * match all the expected APM events in `TEST_REQUESTS`. - */ -function checkExpectedApmEvents(t, apmEvents) { - // metadata - if (apmEvents.length > 0) { - const metadata = apmEvents.shift().metadata; - t.ok(metadata, 'metadata is first event'); - t.equal(metadata.service.name, 'azfunc3', 'metadata.service.name'); - t.equal( - metadata.service.framework.name, - 'Azure Functions', - 'metadata.service.framework.name', - ); - t.equal( - metadata.service.framework.version, - '~4', - 'metadata.service.framework.version', - ); - t.equal( - metadata.service.runtime.name, - 'node', - 'metadata.service.runtime.name', - ); - t.equal( - metadata.service.node.configured_name, - 'test-website-instance-id', - 'metadata.service.node.configured_name', - ); - t.equal( - metadata.cloud.account.id, - '2491fc8e-f7c1-4020-b9c6-78509919fd16', - 'metadata.cloud.account.id', - ); - t.equal( - metadata.cloud.instance.name, - 'azfunc3', - 'metadata.cloud.instance.name', - ); - t.equal( - metadata.cloud.project.name, - 'my-resource-group', - 'metadata.cloud.project.name', - ); - t.equal(metadata.cloud.provider, 'azure', 'metadata.cloud.provider'); - t.equal(metadata.cloud.region, 'test-region-name', 'metadata.cloud.region'); - t.equal( - metadata.cloud.service.name, - 'functions', - 'metadata.cloud.service.name', - ); - } - - // Filter out any metadata from separate requests, and metricsets which we - // aren't testing. - apmEvents = apmEvents.filter((e) => !e.metadata).filter((e) => !e.metricset); - - // Sort all the remaining APM events and check expectations from TEST_REQUESTS. - apmEvents = apmEvents.sort((a, b) => { - return getEventField(a, 'timestamp') < getEventField(b, 'timestamp') - ? -1 - : 1; - }); - TEST_REQUESTS.forEach((testReq) => { - t.comment(`check APM events for "${testReq.testName}"`); - // Collect all events for this transaction's trace_id, and pass that to - // the `checkApmEvents` function for this request. - let apmEventsForReq = []; - if (apmEvents.length > 0) { - assert( - apmEvents[0].transaction, - `next APM event is a transaction: ${JSON.stringify(apmEvents[0])}`, - ); - const traceId = apmEvents[0].transaction.trace_id; - apmEventsForReq = apmEvents.filter( - (e) => getEventField(e, 'trace_id') === traceId, - ); - apmEvents = apmEvents.filter( - (e) => getEventField(e, 'trace_id') !== traceId, - ); - } - testReq.checkApmEvents(t, apmEventsForReq); - }); - - t.equal( - apmEvents.length, - 0, - 'no additional unexpected APM server events: ' + JSON.stringify(apmEvents), - ); -} - -// ---- tests - -const UUID_RE = - /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i; - -const fnAppDir = path.join(__dirname, 'fixtures', 'azfunc3'); -const funcExe = - path.resolve(fnAppDir, 'node_modules/.bin/func') + - (os.platform() === 'win32' ? '.cmd' : ''); - -var TEST_REQUESTS = [ - { - testName: 'HttpFn1', - reqOpts: { method: 'GET', path: '/api/HttpFn1' }, - expectedRes: { - statusCode: 200, // the Azure Functions default - headers: { myheadername: 'MyHeaderValue' }, - body: 'HttpFn1 body', - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFn1', 'transaction.name'); - t.equal(trans.type, 'request', 'transaction.type'); - t.equal(trans.outcome, 'success', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal(trans.faas.name, 'azfunc3/HttpFn1', 'transaction.faas.name'); - t.equal( - trans.faas.id, - '/subscriptions/2491fc8e-f7c1-4020-b9c6-78509919fd16/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/azfunc3/functions/HttpFn1', - 'transaction.faas.id', - ); - t.equal(trans.faas.trigger.type, 'http', 'transaction.faas.trigger.type'); - t.ok( - UUID_RE.test(trans.faas.execution), - 'transaction.faas.execution ' + trans.faas.execution, - ); - t.equal(trans.faas.coldstart, true, 'transaction.faas.coldstart'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.request.url.full, - 'http://127.0.0.1:7071/api/HttpFn1', - 'transaction.context.request.url.full', - ); - t.ok( - trans.context.request.headers, - 'transaction.context.request.headers', - ); - t.equal( - trans.context.response.status_code, - 200, - 'transaction.context.response.status_code', - ); - t.equal( - trans.context.response.headers.MyHeaderName, - 'MyHeaderValue', - 'transaction.context.response.headers.MyHeaderName', - ); - }, - }, - // Only a test a subset of fields to not be redundant with previous cases. - { - testName: 'HttpFnError throws an error', - reqOpts: { method: 'GET', path: '/api/HttpFnError' }, - expectedRes: { - statusCode: 500, - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 2); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFnError', 'transaction.name'); - t.equal(trans.outcome, 'failure', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 5xx', 'transaction.result'); - t.equal(trans.faas.name, 'azfunc3/HttpFnError', 'transaction.faas.name'); - t.equal(trans.faas.coldstart, false, 'transaction.faas.coldstart'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.response.status_code, - 500, - 'transaction.context.response.status_code', - ); - - const error = apmEventsForReq[1].error; - t.equal(error.parent_id, trans.id, 'error.parent_id'); - t.deepEqual( - error.transaction, - { name: trans.name, type: trans.type, sampled: trans.sampled }, - 'error.transaction', - ); - t.equal( - error.exception.message, - 'thrown error in HttpFnError', - 'error.exception.message', - ); - t.equal(error.exception.type, 'Error', 'error.exception.type'); - t.equal(error.exception.handled, true, 'error.exception.handled'); - const topFrame = error.exception.stacktrace[0]; - t.equal( - topFrame.filename, - path.join('HttpFnError', 'index.js'), - 'topFrame.filename', - ); - t.equal(topFrame.lineno, 8, 'topFrame.lineno'); - t.equal(topFrame.function, 'ThrowErrorHandler', 'topFrame.function'); - }, - }, - { - testName: 'HttpFnBindingsRes', - reqOpts: { method: 'GET', path: '/api/HttpFnBindingsRes' }, - expectedRes: { - statusCode: 202, - body: 'HttpFnBindingsRes body', - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFnBindingsRes', 'transaction.name'); - t.equal(trans.outcome, 'success', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.response.status_code, - 202, - 'transaction.context.response.status_code', - ); - }, - }, - { - testName: 'HttpFnContextDone', - reqOpts: { method: 'GET', path: '/api/HttpFnContextDone' }, - expectedRes: { - statusCode: 202, - body: 'HttpFnContextDone body', - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFnContextDone', 'transaction.name'); - t.equal(trans.outcome, 'success', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.response.status_code, - 202, - 'transaction.context.response.status_code', - ); - }, - }, - { - testName: 'HttpFnReturnContext', - reqOpts: { method: 'GET', path: '/api/HttpFnReturnContext' }, - expectedRes: { - statusCode: 202, - body: 'HttpFnReturnContext body', - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFnReturnContext', 'transaction.name'); - t.equal(trans.outcome, 'success', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.response.status_code, - 202, - 'transaction.context.response.status_code', - ); - }, - }, - { - testName: 'HttpFnReturnResponseData', - reqOpts: { method: 'GET', path: '/api/HttpFnReturnResponseData' }, - expectedRes: { - statusCode: 202, - body: 'HttpFnReturnResponseData body', - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal( - trans.name, - 'GET /api/HttpFnReturnResponseData', - 'transaction.name', - ); - t.equal(trans.outcome, 'success', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.response.status_code, - 202, - 'transaction.context.response.status_code', - ); - }, - }, - { - testName: 'HttpFnReturnObject', - reqOpts: { method: 'GET', path: '/api/HttpFnReturnObject' }, - expectedRes: { - statusCode: 200, - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFnReturnObject', 'transaction.name'); - t.equal(trans.outcome, 'success', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.response.status_code, - 200, - 'transaction.context.response.status_code', - ); - }, - }, - { - testName: 'HttpFnReturnString', - reqOpts: { method: 'GET', path: '/api/HttpFnReturnString' }, - expectedRes: { - statusCode: 500, - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFnReturnString', 'transaction.name'); - t.equal(trans.outcome, 'failure', 'transaction.outcome'); - t.equal(trans.result, 'HTTP 5xx', 'transaction.result'); - t.equal( - trans.context.request.method, - 'GET', - 'transaction.context.request.method', - ); - t.equal( - trans.context.response.status_code, - 500, - 'transaction.context.response.status_code', - ); - }, - }, - { - testName: 'GET httpfn1 (lower-case in URL path)', - reqOpts: { method: 'GET', path: '/api/httpfn1' }, - expectedRes: { - statusCode: 200, // the Azure Functions default - headers: { myheadername: 'MyHeaderValue' }, - body: 'HttpFn1 body', - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal(trans.name, 'GET /api/HttpFn1', 'transaction.name'); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal(trans.faas.name, 'azfunc3/HttpFn1', 'transaction.faas.name'); - t.equal( - trans.faas.id, - '/subscriptions/2491fc8e-f7c1-4020-b9c6-78509919fd16/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/azfunc3/functions/HttpFn1', - 'transaction.faas.id', - ); - t.equal( - trans.context.request.url.full, - 'http://127.0.0.1:7071/api/httpfn1', - 'transaction.context.request.url.full', - ); - }, - }, - { - // https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger#customize-the-http-endpoint - testName: 'HttpFnRouteTemplate', - reqOpts: { method: 'GET', path: '/api/products/electronics/42' }, - expectedRes: { - statusCode: 202, - body: 'HttpFnRouteTemplate body: category=electronics id=42', - }, - checkApmEvents: (t, apmEventsForReq) => { - t.equal(apmEventsForReq.length, 1); - const trans = apmEventsForReq[0].transaction; - t.equal( - trans.name, - 'GET /api/products/{category:alpha}/{id:int?}', - 'transaction.name', - ); - t.equal(trans.result, 'HTTP 2xx', 'transaction.result'); - t.equal( - trans.faas.name, - 'azfunc3/HttpFnRouteTemplate', - 'transaction.faas.name', - ); - t.equal( - trans.faas.id, - '/subscriptions/2491fc8e-f7c1-4020-b9c6-78509919fd16/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/azfunc3/functions/HttpFnRouteTemplate', - 'transaction.faas.id', - ); - t.equal( - trans.context.request.url.full, - 'http://127.0.0.1:7071/api/products/electronics/42', - 'transaction.context.request.url.full', - ); - }, - }, - { - testName: 'HttpFnDistTrace', - reqOpts: { method: 'GET', path: '/api/HttpFnDistTraceA' }, - expectedRes: { - statusCode: 200, - body: 'HttpFnDistTraceA body', - }, - checkApmEvents: (t, apmEventsForReq) => { - // Expect: - // trans "GET HttpFnDistTraceA" - // `- span "spanA" - // `- span "GET $HOST:$PORT" - // `- trans "GET HttpFnDistTraceB" - t.equal(apmEventsForReq.length, 4); - const t1 = apmEventsForReq[0].transaction; - t.equal(t1.name, 'GET /api/HttpFnDistTraceA', 't1.name'); - t.equal(t1.faas.name, 'azfunc3/HttpFnDistTraceA', 't1.faas.name'); - const s1 = apmEventsForReq[1].span; - t.equal(s1.name, 'spanA', 's1.name'); - t.equal(s1.parent_id, t1.id, 's1 is a child of t1'); - const s2 = apmEventsForReq[2].span; - t.equal(s2.name, `GET ${s2.context.service.target.name}`, 's2.name'); - t.equal(s2.type, 'external', 's2.type'); - t.equal(s2.parent_id, s1.id, 's2 is a child of s1'); - const t2 = apmEventsForReq[3].transaction; - t.equal(t2.name, 'GET /api/HttpFnDistTraceB', 't2.name'); - t.equal(t2.faas.name, 'azfunc3/HttpFnDistTraceB', 't2.faas.name'); - t.equal(t2.parent_id, s2.id, 't2 is a child of s2'); - t.equal( - t2.context.request.headers.traceparent, - `00-${t1.trace_id}-${s2.id}-01`, - 't2 traceparent header', - ); - t.equal( - t2.context.request.headers.tracestate, - 'es=s:1', - 't2 tracestate header', - ); - }, - }, -]; -// TEST_REQUESTS = TEST_REQUESTS.filter(r => ~r.testName.indexOf('HttpFn1')) // Use this for dev work. - -// We need to `npm ci` for a first test run. -tape.test( - `setup: npm ci (in ${fnAppDir})`, - { skip: fs.existsSync(funcExe) }, - (t) => { - const startTime = Date.now(); - exec( - 'npm ci', - { - cwd: fnAppDir, - }, - function (err, stdout, stderr) { - t.error( - err, - `"npm ci" succeeded (took ${(Date.now() - startTime) / 1000}s)`, - ); - if (err) { - t.comment( - `$ npm ci\n-- stdout --\n${stdout}\n-- stderr --\n${stderr}\n--`, - ); - } - t.end(); - }, - ); - }, -); - -tape.test('azure functions v3', function (suite) { - let apmServer; - let apmServerUrl; - - suite.test('setup', function (t) { - apmServer = new MockAPMServer(); - apmServer.start(function (serverUrl) { - apmServerUrl = serverUrl; - t.comment('mock APM apmServerUrl: ' + apmServerUrl); - t.end(); - }); - }); - - let fnAppProc; - suite.test('setup: "func start" for azfunc3 fixture', (t) => { - fnAppProc = spawn(funcExe, ['start'], { - cwd: fnAppDir, - env: Object.assign({}, process.env, { - ELASTIC_APM_SERVER_URL: apmServerUrl, - ELASTIC_APM_API_REQUEST_TIME: '2s', - }), - }); - fnAppProc.on('error', (err) => { - t.error(err, 'no error from "func start"'); - }); - fnAppProc.stdout.on('data', (data) => { - t.comment(`["func start" stdout] ${formatForTComment(data)}`); - }); - fnAppProc.stderr.on('data', (data) => { - t.comment(`["func start" stderr] ${formatForTComment(data)}`); - }); - - // Allow some time for an early fail of `func start`, e.g. if there is - // already a user of port 7071... - const onEarlyClose = (code) => { - // Warning/Limitation: The 'npm ci' above installs platform-specific - // binaries to "$fnAppDir/node_modules/azure-functions-core-tools/...", - // which means a local test run on macOS followed by an attempted test run - // in Docker will result in a crash: - // node_tests_1 | # ["func start" stderr] /app/test/instrumentation/azure-functions/fixtures/azfunc3/node_modules/azure-functions-core-tools/bin/func: 1: Syntax error: "(" unexpected - // node_tests_1 | not ok 2 "func start" failed early: code=2 - // For now the workaround is to manually clean that tree before running - // tests on a separate OS: - // rm -rf test/instrumentation/azure-functions/fixtures/azfunc3/node_modules - t.fail(`"func start" failed early: code=${code}`); - fnAppProc = null; - clearTimeout(earlyCloseTimer); - t.end(); - }; - fnAppProc.on('close', onEarlyClose); - const earlyCloseTimer = setTimeout(() => { - fnAppProc.removeListener('close', onEarlyClose); - - // ... then wait for the server to be ready. - waitForServerReady(t, (waitErr) => { - if (waitErr) { - t.fail( - `error waiting for "func start" to be ready: ${waitErr.message}`, - ); - treekill(fnAppProc.pid, 'SIGKILL'); - fnAppProc = null; - } else { - t.comment('"func start" is ready'); - } - t.end(); - }); - }, 1000); - }); - - suite.test('make requests', async (t) => { - if (!fnAppProc) { - t.skip('there is no fnAppProc'); - t.end(); - return; - } - - apmServer.clear(); - for (let i = 0; i < TEST_REQUESTS.length; i++) { - await makeTestRequest(t, TEST_REQUESTS[i]); - } - - t.end(); - }); - - suite.test('check all APM events', (t) => { - if (!fnAppProc) { - t.skip('there is no fnAppProc'); - t.end(); - return; - } - - // To ensure we get all the trace data from the instrumented function app - // server, we wait 2x the `apiRequestTime` (set above) before stopping it. - fnAppProc.on('close', (_code) => { - checkExpectedApmEvents(t, apmServer.events); - t.end(); - }); - t.comment('wait 4s for trace data to be sent before closing "func start"'); - setTimeout(() => { - treekill(fnAppProc.pid, 'SIGKILL'); - }, 4000); // 2x ELASTIC_APM_API_REQUEST_TIME set above - }); - - suite.test('teardown', function (t) { - apmServer.close(); - t.end(); - }); - - suite.end(); -}); diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/.gitignore b/test/instrumentation/azure-functions/fixtures/azfunc3/.gitignore deleted file mode 100644 index 9ee7cd6ffe..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/.gitignore +++ /dev/null @@ -1,50 +0,0 @@ -bin -obj -csx -.vs -edge -Publish - -*.user -*.suo -*.cscfg -*.Cache -project.lock.json - -/packages -/TestResults - -/tools/NuGet.exe -/App_Data -/secrets -/data -.secrets -appsettings.json -# Explicitly allow local.settings.json for local testing. -# local.settings.json - -node_modules -dist -.vscode/ - -# Local python packages -.python_packages/ - -# Python Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# Azurite artifacts -__blobstorage__ -__queuestorage__ -__azurite_db*__.json diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/function.json deleted file mode 100644 index c49c51116f..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/index.js deleted file mode 100644 index 3fe70c1321..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFn1/index.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function (context, _req) { - context.res = { - headers: { - MyHeaderName: 'MyHeaderValue', - }, - body: 'HttpFn1 body', - }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/function.json deleted file mode 100644 index c49c51116f..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/index.js deleted file mode 100644 index 9c97ddfe97..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnBindingsRes/index.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function (context) { - // Using this wins over possible `context.res` usage. - context.bindings.res = { - status: 202, - body: 'HttpFnBindingsRes body', - }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/function.json deleted file mode 100644 index c49c51116f..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/index.js deleted file mode 100644 index b9532d02f5..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnContextDone/index.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = function (context) { - // This is an old (deprecated?) Azure Functions way to signal completion for - // a non-async function handler. - context.done(null, { - res: { - status: 202, - body: 'HttpFnContextDone body', - }, - }); -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/function.json deleted file mode 100644 index c49c51116f..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/index.js deleted file mode 100644 index ddf1bf975d..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceA/index.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -const apm = require('../../../../../../'); // elastic-apm-node - -const http = require('http'); -const https = require('https'); - -async function callHttpFnDistTrace(req, suffix) { - const u = new URL(req.url); - u.pathname = u.pathname.replace(/.$/, suffix); - const url = u.toString(); - const proto = u.protocol === 'https:' ? https : http; - return new Promise((resolve, reject) => { - const clientReq = proto.request(url, function (clientRes) { - const chunks = []; - clientRes.on('data', function (chunk) { - chunks.push(chunk); - }); - clientRes.on('end', function () { - const body = chunks.join(''); - resolve({ - statusCode: clientRes.statusCode, - headers: clientRes.headers, - body, - }); - }); - clientRes.on('error', reject); - }); - clientReq.on('error', reject); - clientReq.end(); - }); -} - -module.exports = async function (context, req) { - const span = apm.startSpan('spanA'); - await callHttpFnDistTrace(req, 'B'); - if (span) { - span.end(); - } - - context.res = { - status: 200, - body: 'HttpFnDistTraceA body', - }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/function.json deleted file mode 100644 index c49c51116f..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/index.js deleted file mode 100644 index 9935447dba..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnDistTraceB/index.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function (context, req) { - context.res = { - status: 200, - body: 'HttpFnDistTraceB body', - }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/function.json deleted file mode 100644 index 91052aaf8a..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} \ No newline at end of file diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/index.js deleted file mode 100644 index 37537e0004..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnError/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function ThrowErrorHandler(context, req) { - throw new Error('thrown error in HttpFnError'); -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/function.json deleted file mode 100644 index c49c51116f..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/index.js deleted file mode 100644 index 8426f366ba..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnContext/index.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function () { - // If returning an object with a field that matches the type=http "out" - // binding, then this return value is used and wins over `context.res` and - // `context.bindings.*` usage. - // Note that this does *not* use a '$return' binding in function.json! - return { - res: { - status: 202, - body: 'HttpFnReturnContext body', - }, - }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/function.json deleted file mode 100644 index b1b83fe548..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "$return" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/index.js deleted file mode 100644 index 60a2ead0ee..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnObject/index.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function () { - // Using a '$return' binding, so only the return value is used (not - // `context.res` or `context.bindings.*`). Any object is fine, but if it - // provides none of the fields for an HTTP response, then the default is used. - return { foo: 'bar' }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/function.json deleted file mode 100644 index b1b83fe548..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "$return" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/index.js deleted file mode 100644 index 3306917b98..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnResponseData/index.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function () { - // Using a '$return' binding, one can return the response data directly. - return { - status: 202, - body: 'HttpFnReturnResponseData body', - }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/function.json deleted file mode 100644 index b1b83fe548..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "$return" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/index.js deleted file mode 100644 index fa434445e3..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnReturnString/index.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function () { - // This uses a '$return' binding, so the retval is used. - // Any HTTP response from an Azure Function is meant to be an *object*. If - // not, then Azure returns a 500 response with an empty body. - return 'this is return value string'; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/function.json b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/function.json deleted file mode 100644 index 2a3aebd5c1..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/function.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "Anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "req", - "methods": [ - "get", - "post" - ], - "route": "products/{category:alpha}/{id:int?}" - }, - { - "type": "http", - "direction": "out", - "name": "res" - } - ] -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/index.js b/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/index.js deleted file mode 100644 index 42fb5aae2d..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/HttpFnRouteTemplate/index.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -module.exports = async function (context, _req) { - context.res = { - status: 202, - body: `HttpFnRouteTemplate body: category=${context.req.params.category} id=${context.req.params.id}`, - }; -}; diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/README.md b/test/instrumentation/azure-functions/fixtures/azfunc3/README.md deleted file mode 100644 index 9e3ea2e8ed..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/README.md +++ /dev/null @@ -1,3 +0,0 @@ -A Node.js Azure Functions app, using **version 3** of the Node.js -programming model. See: -https://learn.microsoft.com/en-ca/azure/azure-functions/functions-node-upgrade-v4 diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/host.json b/test/instrumentation/azure-functions/fixtures/azfunc3/host.json deleted file mode 100644 index 519fe11b51..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/host.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "2.0", - "logging": { - "applicationInsights": { - "samplingSettings": { - "isEnabled": true, - "excludedTypes": "Request" - } - } - }, - "extensionBundle": { - "id": "Microsoft.Azure.Functions.ExtensionBundle", - "version": "[3.*, 4.0.0)" - } -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/initapm.js b/test/instrumentation/azure-functions/fixtures/azfunc3/initapm.js deleted file mode 100644 index db2f85666c..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/initapm.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and other contributors where applicable. - * Licensed under the BSD 2-Clause License; you may not use this file except in - * compliance with the BSD 2-Clause License. - */ - -// For the normal use case an "initapm.js" would look like: -// module.exports = require('elastic-apm-node').start(/* { ... } */) - -module.exports = require('../../../../../').start(); diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/local.settings.json b/test/instrumentation/azure-functions/fixtures/azfunc3/local.settings.json deleted file mode 100644 index 8910ca349e..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/local.settings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "AzureWebJobsStorage": "", - "WEBSITE_RUN_FROM_PACKAGE": "1", - "WEBSITE_NODE_DEFAULT_VERSION": "~16", - "FUNCTIONS_EXTENSION_VERSION": "~4", - - "WEBSITE_SITE_NAME": "azfunc3", - "WEBSITE_OWNER_NAME": "2491fc8e-f7c1-4020-b9c6-78509919fd16+my-resource-group-ARegionShortNamewebspace", - "WEBSITE_RESOURCE_GROUP": "my-resource-group", - "WEBSITE_INSTANCE_ID": "test-website-instance-id", - "REGION_NAME": "test-region-name" - } -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/package-lock.json b/test/instrumentation/azure-functions/fixtures/azfunc3/package-lock.json deleted file mode 100644 index 499376cb4c..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/package-lock.json +++ /dev/null @@ -1,712 +0,0 @@ -{ - "name": "azfunc3", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "version": "1.0.0", - "devDependencies": { - "azure-functions-core-tools": "^4.0.5148" - } - }, - "node_modules/azure-functions-core-tools": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/azure-functions-core-tools/-/azure-functions-core-tools-4.10.0.tgz", - "integrity": "sha512-UoM4YANGz8spbQ2Kt4Q8YiDoKH8ofVIdHGR1V2mKXRhuPEvtz1aPC7fGdtm2/5TkVYha1lG8CvN0KXNSSlUrig==", - "dev": true, - "hasInstallScript": true, - "hasShrinkwrap": true, - "os": [ - "win32", - "darwin", - "linux" - ], - "dependencies": { - "chalk": "3.0.0", - "extract-zip": "^2.0.1", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "rimraf": "4.4.1" - }, - "bin": { - "azfun": "lib/main.js", - "azurefunctions": "lib/main.js", - "func": "lib/main.js" - }, - "engines": { - "node": ">=6.9.1" - } - }, - "node_modules/azure-functions-core-tools/node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "node_modules/azure-functions-core-tools/node_modules/@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", - "dev": true, - "optional": true - }, - "node_modules/azure-functions-core-tools/node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/azure-functions-core-tools/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/azure-functions-core-tools/node_modules/ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", - "dev": true, - "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/azure-functions-core-tools/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/azure-functions-core-tools/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/azure-functions-core-tools/node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/azure-functions-core-tools/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/azure-functions-core-tools/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/azure-functions-core-tools/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/azure-functions-core-tools/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/azure-functions-core-tools/node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/azure-functions-core-tools/node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/azure-functions-core-tools/node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/azure-functions-core-tools/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/azure-functions-core-tools/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/azure-functions-core-tools/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/azure-functions-core-tools/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/azure-functions-core-tools/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/azure-functions-core-tools/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/azure-functions-core-tools/node_modules/minimatch": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.7.tgz", - "integrity": "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/azure-functions-core-tools/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/azure-functions-core-tools/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/azure-functions-core-tools/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/azure-functions-core-tools/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/azure-functions-core-tools/node_modules/path-scurry/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/azure-functions-core-tools/node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/azure-functions-core-tools/node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/azure-functions-core-tools/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/azure-functions-core-tools/node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^9.2.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/azure-functions-core-tools/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/azure-functions-core-tools/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/azure-functions-core-tools/node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, - "dependencies": { - "azure-functions-core-tools": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/azure-functions-core-tools/-/azure-functions-core-tools-4.10.0.tgz", - "integrity": "sha512-UoM4YANGz8spbQ2Kt4Q8YiDoKH8ofVIdHGR1V2mKXRhuPEvtz1aPC7fGdtm2/5TkVYha1lG8CvN0KXNSSlUrig==", - "dev": true, - "requires": { - "chalk": "3.0.0", - "extract-zip": "^2.0.1", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "rimraf": "4.4.1" - }, - "dependencies": { - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", - "dev": true, - "optional": true - }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "requires": { - "ms": "^2.1.3" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "minimatch": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.7.tgz", - "integrity": "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dev": true, - "requires": { - "glob": "^9.2.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - } - } - } -} diff --git a/test/instrumentation/azure-functions/fixtures/azfunc3/package.json b/test/instrumentation/azure-functions/fixtures/azfunc3/package.json deleted file mode 100644 index d4040c89c3..0000000000 --- a/test/instrumentation/azure-functions/fixtures/azfunc3/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "", - "version": "1.0.0", - "description": "", - "main": "initapm.js", - "scripts": { - "start": "func start", - "test": "echo \"No tests yet...\"" - }, - "devDependencies": { - "azure-functions-core-tools": "^4.0.5148" - } -}