@forge/api 2.12.0-next.1-experimental-58938ba → 2.12.0-next.2

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/CHANGELOG.md CHANGED
@@ -1,17 +1,10 @@
1
1
  # @forge/api
2
2
 
3
- ## 2.12.0-next.1-experimental-58938ba
4
-
5
- ### Minor Changes
6
-
7
- - 60a3be66: Add NodeJS runtime support for unauthenticated product requests via the api object
3
+ ## 2.12.0-next.2
8
4
 
9
5
  ### Patch Changes
10
6
 
11
- - 82ea466c: Add metrics for NodeJS runtime
12
- - eb084dba: Added capabilities for enabling Custom entities
13
- - Updated dependencies [eb084dba]
14
- - @forge/storage@1.3.2-experimental-58938ba
7
+ - 659107b: Implement getting webtrigger URL in Node runtime
15
8
 
16
9
  ## 2.12.0-next.1
17
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/api/fetch.ts"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAW,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAS9B,aAAK,aAAa,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrG,aAAK,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,aAAK,cAAc,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAuBvE,eAAO,MAAM,gBAAgB,aAAc,gBAAgB,UAAU,cAAc,KAAG,aAsCrF,CAAC;AAuBF,wBAAgB,iBAAiB,IAAI,QAAQ,CAoB5C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAEvD"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/api/fetch.ts"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAW,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAS9B,aAAK,aAAa,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrG,aAAK,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,aAAK,cAAc,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAuBvE,eAAO,MAAM,gBAAgB,aAAc,gBAAgB,UAAU,cAAc,KAAG,aAkCnF,CAAC;AAuBJ,wBAAgB,iBAAiB,IAAI,QAAQ,CAoB5C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAEvD"}
package/out/api/fetch.js CHANGED
@@ -27,37 +27,27 @@ const metricName = (provider, remote) => {
27
27
  }
28
28
  return `api.${providerToMetric[provider]}.${remoteToMetric[remote]}`;
29
29
  };
30
- const createProxyFetch = (provider, remote) => {
31
- return async (url, options) => {
32
- const { proxy, metrics } = (0, runtime_1.getRuntime)();
33
- const request = new node_fetch_1.Request(url, options);
34
- const metric = metricName(provider, remote);
35
- const timer = metrics.timing(metric, { proxy: 'true' }).measure();
36
- metrics.counter(metric).incr();
37
- try {
38
- const proxyRequest = new node_fetch_1.Request(`${proxy.url}/fpp/provider/${provider}/remote/${remote}`, request);
39
- proxyRequest.headers.set('Forge-Proxy-Target-Relative', request.url);
40
- proxyRequest.headers.set('Forge-Proxy-Authorization', `Bearer ${proxy.token}`);
41
- const requestStart = perf_hooks_1.performance.now();
42
- const response = await (0, node_fetch_1.default)(proxyRequest);
43
- const requestEnd = perf_hooks_1.performance.now();
44
- const proxyUpstreamLatency = parseInt(response.headers.get(FORGE_PROXY_UPSTREAM_LATENCY_HEADER) || '');
45
- if (proxyUpstreamLatency) {
46
- metrics.timing('proxy-success-overhead').set(requestEnd - requestStart - proxyUpstreamLatency);
47
- }
48
- if (response.headers.has('forge-proxy-error')) {
49
- if (response.headers.get('forge-proxy-error') === 'NEEDS_AUTHENTICATION_ERR') {
50
- throw new errors_1.NeedsAuthenticationError('Authentication Required', ATLASSIAN_TOKEN_SERVICE_KEY);
51
- }
52
- throw new errors_1.ProxyRequestError(response.status, response.headers.get('forge-proxy-error'));
53
- }
54
- return response;
55
- }
56
- finally {
57
- timer.stop();
30
+ const createProxyFetch = (provider, remote) => (0, runtime_1.wrapInMetrics)(metricName(provider, remote), async (url, options) => {
31
+ const { proxy, metrics } = (0, runtime_1.getRuntime)();
32
+ const request = new node_fetch_1.Request(url, options);
33
+ const proxyRequest = new node_fetch_1.Request(`${proxy.url}/fpp/provider/${provider}/remote/${remote}`, request);
34
+ proxyRequest.headers.set('Forge-Proxy-Target-Relative', request.url);
35
+ proxyRequest.headers.set('Forge-Proxy-Authorization', `Bearer ${proxy.token}`);
36
+ const requestStart = perf_hooks_1.performance.now();
37
+ const response = await (0, node_fetch_1.default)(proxyRequest);
38
+ const requestEnd = perf_hooks_1.performance.now();
39
+ const proxyUpstreamLatency = parseInt(response.headers.get(FORGE_PROXY_UPSTREAM_LATENCY_HEADER) || '');
40
+ if (proxyUpstreamLatency) {
41
+ metrics.timing('proxy-success-overhead').set(requestEnd - requestStart - proxyUpstreamLatency);
42
+ }
43
+ if (response.headers.has('forge-proxy-error')) {
44
+ if (response.headers.get('forge-proxy-error') === 'NEEDS_AUTHENTICATION_ERR') {
45
+ throw new errors_1.NeedsAuthenticationError('Authentication Required', ATLASSIAN_TOKEN_SERVICE_KEY);
58
46
  }
59
- };
60
- };
47
+ throw new errors_1.ProxyRequestError(response.status, response.headers.get('forge-proxy-error'));
48
+ }
49
+ return response;
50
+ }, { tags: { proxy: 'true' } });
61
51
  exports.createProxyFetch = createProxyFetch;
62
52
  const throwNotImplementedError = () => {
63
53
  throw new Error('not implemented');
@@ -1,10 +1,18 @@
1
- import type { Metrics } from '@forge/util/packages/metrics-interface';
1
+ import type { Metrics, Tags } from '@forge/util/packages/metrics-interface';
2
2
  export declare type ForgeRuntime = {
3
3
  proxy: {
4
4
  token: string;
5
5
  url: string;
6
6
  };
7
7
  contextAri: string;
8
+ appContext: {
9
+ appId: string;
10
+ environmentId: string;
11
+ appVersion: string;
12
+ functionKey: string;
13
+ moduleType: string;
14
+ moduleKey: string;
15
+ };
8
16
  allowedEgress: string[];
9
17
  lambdaContext: {
10
18
  awsRequestId: string;
@@ -12,4 +20,7 @@ export declare type ForgeRuntime = {
12
20
  metrics: Metrics;
13
21
  };
14
22
  export declare function getRuntime(): ForgeRuntime;
23
+ export declare function wrapInMetrics<Args extends unknown[], Ret>(name: string, fn: (...args: Args) => Promise<Ret>, { tags }?: {
24
+ tags?: Tags;
25
+ }): (...args: Args) => Promise<Ret>;
15
26
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/api/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAOtE,oBAAY,YAAY,GAAG;IACzB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,UAAU,IAAI,YAAY,CAOzC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/api/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAO5E,oBAAY,YAAY,GAAG;IACzB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,UAAU,IAAI,YAAY,CAOzC;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,GAAG,EACvD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,EACnC,EAAE,IAAI,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,IAAI,CAAA;CAAO,GAC7B,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAWjC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRuntime = void 0;
3
+ exports.wrapInMetrics = exports.getRuntime = void 0;
4
4
  function getRuntime() {
5
5
  const runtime = global.__forge_runtime__;
6
6
  if (!runtime) {
@@ -9,3 +9,17 @@ function getRuntime() {
9
9
  return runtime;
10
10
  }
11
11
  exports.getRuntime = getRuntime;
12
+ function wrapInMetrics(name, fn, { tags } = {}) {
13
+ return async (...args) => {
14
+ const { metrics } = getRuntime();
15
+ metrics.counter(name, tags).incr();
16
+ const timer = metrics.timing(name, tags).measure();
17
+ try {
18
+ return await fn(...args);
19
+ }
20
+ finally {
21
+ timer.stop();
22
+ }
23
+ };
24
+ }
25
+ exports.wrapInMetrics = wrapInMetrics;
package/out/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RequestInit, Response } from 'node-fetch';
2
- import { QueryApi, EntityStorageApi } from '@forge/storage';
2
+ import { QueryApi } from '@forge/storage';
3
3
  import { authorize } from './authorization';
4
4
  import { Route } from './safeUrl';
5
5
  import { webTrigger } from './webTrigger';
@@ -37,7 +37,7 @@ export interface PropertiesAPI {
37
37
  onConfluencePage: (context: string) => StorageMethods;
38
38
  onConfluenceSpace: (context: string) => StorageMethods;
39
39
  }
40
- export interface StorageAPI extends StorageMethods, QueryApi, EntityStorageApi {
40
+ export interface StorageAPI extends StorageMethods, QueryApi {
41
41
  }
42
42
  export interface ForgeStorageAPI extends StorageAPI {
43
43
  getSecret: (key: string) => Promise<any>;
@@ -65,7 +65,15 @@ declare const requestJira: RequestProductMethod;
65
65
  declare const requestConfluence: RequestProductMethod;
66
66
  declare const requestBitbucket: RequestProductMethod;
67
67
  declare const store: PropertiesAPI;
68
- declare const storage: StorageAPI;
68
+ declare const storage: {
69
+ get: (key: string) => Promise<any>;
70
+ set: (key: string, value: any) => Promise<void>;
71
+ delete: (key: string) => Promise<void>;
72
+ getSecret: (key: string) => Promise<any>;
73
+ setSecret: (key: string, value: any) => Promise<void>;
74
+ deleteSecret: (key: string) => Promise<void>;
75
+ query: () => import("packages/forge-storage/out/query-api").DefaultQueryBuilder;
76
+ };
69
77
  declare const properties: PropertiesAPI;
70
78
  declare const API: ForgeAPI;
71
79
  export declare const privacy: {
@@ -73,7 +81,8 @@ export declare const privacy: {
73
81
  };
74
82
  export default API;
75
83
  export { asUser, asApp, authorize, fetch, requestJira, requestConfluence, requestBitbucket, store, storage, properties, webTrigger, createRequestStargateAsApp };
76
- export { QueryBuilder, QueryApi, EntityStorageApi, Condition, ListResult, Predicate, Result, Value, WherePredicate, FilterPredicate, startsWith, WhereConditions, FilterConditions } from '@forge/storage';
84
+ export { QueryBuilder, QueryApi, Condition, ListResult, Predicate, Result, Value } from '@forge/storage';
85
+ export { startsWith } from '@forge/storage';
77
86
  export { route, assumeTrustedRoute, routeFromAbsolute, Route } from './safeUrl';
78
87
  export { ForgeRuntime, getRuntime } from './api/runtime';
79
88
  export { NeedsAuthenticationError, ProxyRequestError, FetchError, ExternalEndpointNotAllowedError, ProductEndpointNotAllowedError, RequestProductNotAllowedError, NotAllowedError, InvalidWorkspaceRequestedError, HttpError, FUNCTION_ERR, isForgePlatformError, isHostedCodeError } from './api/errors';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/out/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.isHostedCodeError = exports.isForgePlatformError = exports.FUNCTION_ERR = exports.HttpError = exports.InvalidWorkspaceRequestedError = exports.NotAllowedError = exports.RequestProductNotAllowedError = exports.ProductEndpointNotAllowedError = exports.ExternalEndpointNotAllowedError = exports.FetchError = exports.ProxyRequestError = exports.NeedsAuthenticationError = exports.getRuntime = exports.routeFromAbsolute = exports.assumeTrustedRoute = exports.route = exports.FilterConditions = exports.WhereConditions = exports.startsWith = exports.createRequestStargateAsApp = exports.webTrigger = exports.properties = exports.storage = exports.store = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0;
4
+ exports.isHostedCodeError = exports.isForgePlatformError = exports.FUNCTION_ERR = exports.HttpError = exports.InvalidWorkspaceRequestedError = exports.NotAllowedError = exports.RequestProductNotAllowedError = exports.ProductEndpointNotAllowedError = exports.ExternalEndpointNotAllowedError = exports.FetchError = exports.ProxyRequestError = exports.NeedsAuthenticationError = exports.getRuntime = exports.routeFromAbsolute = exports.assumeTrustedRoute = exports.route = exports.startsWith = exports.createRequestStargateAsApp = exports.webTrigger = exports.properties = exports.storage = exports.store = exports.requestBitbucket = exports.requestConfluence = exports.requestJira = exports.fetch = exports.authorize = exports.asApp = exports.asUser = exports.privacy = void 0;
5
5
  const storage_1 = require("@forge/storage");
6
6
  const authorization_1 = require("./authorization");
7
7
  Object.defineProperty(exports, "authorize", { enumerable: true, get: function () { return authorization_1.authorize; } });
@@ -52,8 +52,6 @@ exports.privacy = {
52
52
  exports.default = API;
53
53
  var storage_2 = require("@forge/storage");
54
54
  Object.defineProperty(exports, "startsWith", { enumerable: true, get: function () { return storage_2.startsWith; } });
55
- Object.defineProperty(exports, "WhereConditions", { enumerable: true, get: function () { return storage_2.WhereConditions; } });
56
- Object.defineProperty(exports, "FilterConditions", { enumerable: true, get: function () { return storage_2.FilterConditions; } });
57
55
  var safeUrl_1 = require("./safeUrl");
58
56
  Object.defineProperty(exports, "route", { enumerable: true, get: function () { return safeUrl_1.route; } });
59
57
  Object.defineProperty(exports, "assumeTrustedRoute", { enumerable: true, get: function () { return safeUrl_1.assumeTrustedRoute; } });
@@ -1,4 +1,5 @@
1
- export declare const createRequestStargateAsApp: () => any;
1
+ import { createProxyFetch } from '../api/fetch';
2
+ export declare const createRequestStargateAsApp: () => ReturnType<typeof createProxyFetch>;
2
3
  export declare const getContextAri: () => any;
3
4
  export declare const getFetchAPI: () => import("..").FetchAPI;
4
5
  //# sourceMappingURL=fetch-and-storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-and-storage.d.ts","sourceRoot":"","sources":["../../src/runtime/fetch-and-storage.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,WACiD,CAAC;AAEzF,eAAO,MAAM,aAAa,WAQzB,CAAC;AAEF,eAAO,MAAM,WAAW,6BAOvB,CAAC"}
1
+ {"version":3,"file":"fetch-and-storage.d.ts","sourceRoot":"","sources":["../../src/runtime/fetch-and-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA2C,MAAM,cAAc,CAAC;AAGzF,eAAO,MAAM,0BAA0B,EAAE,MAAM,UAAU,CAAC,OAAO,gBAAgB,CACO,CAAC;AAEzF,eAAO,MAAM,aAAa,WAQzB,CAAC;AAEF,eAAO,MAAM,WAAW,6BAOvB,CAAC"}
@@ -3,4 +3,4 @@ interface WebTriggerAPI {
3
3
  }
4
4
  export declare const webTrigger: WebTriggerAPI;
5
5
  export {};
6
- //# sourceMappingURL=index.d.ts.map
6
+ //# sourceMappingURL=webTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webTrigger.d.ts","sourceRoot":"","sources":["../src/webTrigger.ts"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,MAAM,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1D;AA2CD,eAAO,MAAM,UAAU,EAAE,aAGxB,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webTrigger = void 0;
4
+ const runtime_1 = require("./api/runtime");
5
+ const fetch_and_storage_1 = require("./runtime/fetch-and-storage");
6
+ const proxyGetWebTriggerURL = (0, runtime_1.wrapInMetrics)('api.getWebTriggerUrl', async (webTriggerModuleKey) => {
7
+ var _a, _b;
8
+ const runtime = (0, runtime_1.getRuntime)();
9
+ const response = await (0, fetch_and_storage_1.createRequestStargateAsApp)()('/graphql', {
10
+ method: 'POST',
11
+ headers: { 'Content-Type': 'application/json' },
12
+ body: JSON.stringify({
13
+ query: `
14
+ mutation forge_app_createWebTriggerUrl($input: WebTriggerUrlInput!) {
15
+ createWebTriggerUrl(input: $input) {
16
+ url
17
+ }
18
+ }
19
+ `,
20
+ variables: {
21
+ input: {
22
+ appId: runtime.appContext.appId,
23
+ envId: runtime.appContext.environmentId,
24
+ triggerKey: webTriggerModuleKey,
25
+ contextId: runtime.contextAri
26
+ }
27
+ }
28
+ })
29
+ });
30
+ if (!response.ok) {
31
+ throw new Error(`Internal error occurred: Failed to get web trigger URL: ${response.statusText}.`);
32
+ }
33
+ const responseBody = await response.json();
34
+ if (!((_b = (_a = responseBody === null || responseBody === void 0 ? void 0 : responseBody.data) === null || _a === void 0 ? void 0 : _a.createWebTriggerUrl) === null || _b === void 0 ? void 0 : _b.url)) {
35
+ throw new Error(`Internal error occurred: Failed to get web trigger URL.`);
36
+ }
37
+ return responseBody.data.createWebTriggerUrl.url;
38
+ });
39
+ exports.webTrigger = {
40
+ getUrl: async (webTriggerModuleKey) => { var _a, _b, _c; return ((_c = (_b = (_a = global.api) === null || _a === void 0 ? void 0 : _a.webTrigger) === null || _b === void 0 ? void 0 : _b.getUrl) !== null && _c !== void 0 ? _c : proxyGetWebTriggerURL)(webTriggerModuleKey); }
41
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/api",
3
- "version": "2.12.0-next.1-experimental-58938ba",
3
+ "version": "2.12.0-next.2",
4
4
  "description": "Forge API methods",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -12,6 +12,7 @@
12
12
  "compile": "tsc -b -v"
13
13
  },
14
14
  "devDependencies": {
15
+ "@forge/runtime": "4.3.0-next.0",
15
16
  "@forge/util": "1.2.1",
16
17
  "nock": "^10.0.6",
17
18
  "@types/node": "^12.12.63"
@@ -19,7 +20,7 @@
19
20
  "dependencies": {
20
21
  "@forge/auth": "0.0.1",
21
22
  "@forge/egress": "1.1.2",
22
- "@forge/storage": "1.3.2-experimental-58938ba",
23
+ "@forge/storage": "1.3.2",
23
24
  "@types/node-fetch": "^2.5.7",
24
25
  "node-fetch": "2.6.7"
25
26
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webTrigger/index.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,MAAM,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1D;AAED,eAAO,MAAM,UAAU,EAAE,aAIxB,CAAC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.webTrigger = void 0;
4
- exports.webTrigger = {
5
- getUrl: async (webTriggerModuleKey) => {
6
- return global.api.webTrigger.getUrl(webTriggerModuleKey);
7
- }
8
- };