@depup/vercel 58.4.4-depup.0 → 58.9.0-depup.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.
Files changed (99) hide show
  1. package/README.md +7 -7
  2. package/changes.json +6 -6
  3. package/dist/chunks/{add-245XOFJO.js → add-EN4KBTT6.js} +7 -7
  4. package/dist/chunks/{add-XH24V5VU.js → add-HFK7NUGY.js} +5 -5
  5. package/dist/chunks/{add-P7WBQMBW.js → add-ZVQJE6BF.js} +45 -10
  6. package/dist/chunks/{build-M7NJYJPE.js → build-IDCBAC3R.js} +7 -7
  7. package/dist/chunks/{chunk-2WILSD7J.js → chunk-2PPATWD6.js} +1 -1
  8. package/dist/chunks/{chunk-WR7JTCGL.js → chunk-3BU2UCGV.js} +1 -1
  9. package/dist/chunks/{chunk-MAHXF73X.js → chunk-3L2YLLHC.js} +1 -1
  10. package/dist/chunks/{chunk-M5NOLAJ4.js → chunk-766B6IIX.js} +1 -1
  11. package/dist/chunks/{chunk-CPFNFVCL.js → chunk-7AB6QOKM.js} +1 -1
  12. package/dist/chunks/chunk-7N26744Z.js +1337 -0
  13. package/dist/chunks/{chunk-4CCY5OPH.js → chunk-BX4IGDGM.js} +349 -228
  14. package/dist/chunks/{chunk-XE5VSQ25.js → chunk-CKIZU3CI.js} +1 -1
  15. package/dist/chunks/{chunk-IEDUCUDV.js → chunk-DDUZ2VME.js} +39 -14
  16. package/dist/chunks/{chunk-YDUINEII.js → chunk-DQXBNALU.js} +6 -4
  17. package/dist/chunks/{chunk-ZGBBPJ6B.js → chunk-E3DRV4WI.js} +92 -1377
  18. package/dist/chunks/{chunk-AW5YINX6.js → chunk-ELA5VN3A.js} +36 -3
  19. package/dist/chunks/{chunk-HSYF5SI3.js → chunk-F45WFNLZ.js} +1 -1
  20. package/dist/chunks/{chunk-YCPUAG77.js → chunk-FBG4AMAX.js} +1 -1
  21. package/dist/chunks/chunk-G2S2QKKF.js +96 -0
  22. package/dist/chunks/{chunk-NJUPUGOE.js → chunk-HT2XWSAJ.js} +1 -1
  23. package/dist/chunks/chunk-I2XE3GMB.js +21 -0
  24. package/dist/chunks/{chunk-AQDWMAPM.js → chunk-KES53W3V.js} +11 -9
  25. package/dist/chunks/{chunk-XPKWKPWA.js → chunk-KXDWXXJH.js} +27 -1
  26. package/dist/chunks/chunk-MXLA3VQS.js +20 -0
  27. package/dist/chunks/{chunk-2FMPLU44.js → chunk-N22RS64U.js} +4 -3
  28. package/dist/chunks/{chunk-3QAUXPIR.js → chunk-NFZHW6HH.js} +224 -52
  29. package/dist/chunks/{chunk-UE3JUVUZ.js → chunk-PNSWZSLC.js} +2 -2
  30. package/dist/chunks/{chunk-2LBVX2H3.js → chunk-Q6OJHDZK.js} +2 -2
  31. package/dist/chunks/{chunk-Y5GTPWXB.js → chunk-QRRCK6VX.js} +2 -2
  32. package/dist/chunks/{chunk-EBLH23AQ.js → chunk-TEQKKTJQ.js} +4 -7
  33. package/dist/chunks/{chunk-62MH5KPX.js → chunk-TIBP3CPZ.js} +6 -6
  34. package/dist/chunks/{chunk-NJ6QXKQD.js → chunk-U6CTW37A.js} +1 -1
  35. package/dist/chunks/{chunk-4UYKSYKQ.js → chunk-UMA66MKW.js} +66 -2
  36. package/dist/chunks/chunk-WWPV6Z24.js +2910 -0
  37. package/dist/chunks/{chunk-4BUPRO5B.js → chunk-YTIUSEWE.js} +1 -1
  38. package/dist/chunks/{chunk-SJYAUEZR.js → chunk-YUISINFV.js} +3 -15
  39. package/dist/chunks/{clear-HWIKQ4NC.js → clear-W4AEVUND.js} +5 -5
  40. package/dist/chunks/{compile-vercel-config-U5NRIMZ2.js → compile-vercel-config-Q45PSZDQ.js} +2 -2
  41. package/dist/chunks/config-MZ3KLGOK.js +159 -0
  42. package/dist/chunks/{constants-3FSSR6E7.js → constants-T6BULVX6.js} +1 -1
  43. package/dist/chunks/{delete-NVMGVD5Z.js → delete-7NADCRED.js} +3 -3
  44. package/dist/chunks/{delete-FZCOUFGN.js → delete-NAZTL2IK.js} +5 -5
  45. package/dist/chunks/{disable-ERM2BWEQ.js → disable-SB224IIS.js} +3 -3
  46. package/dist/chunks/{discard-KM5OLEN4.js → discard-MME6PI7B.js} +3 -3
  47. package/dist/chunks/{edit-TOSB2EMI.js → edit-HKQEFIOY.js} +6 -6
  48. package/dist/chunks/{edit-HT3UTATZ.js → edit-NW4YBUR6.js} +4 -4
  49. package/dist/chunks/{enable-BQL6AOQV.js → enable-QEL5CXVD.js} +3 -3
  50. package/dist/chunks/{export-UOWQHOG3.js → export-XDOZTLG3.js} +3 -3
  51. package/dist/chunks/{image-F5SC6Q7Y.js → image-AJMRAAOW.js} +3 -3
  52. package/dist/chunks/import-builders-7UG32FQA.js +28 -0
  53. package/dist/chunks/{inspect-LGKOLH2O.js → inspect-4YTOMOOP.js} +6 -6
  54. package/dist/chunks/{inspect-5J5GSTOB.js → inspect-DGBKWCS4.js} +5 -5
  55. package/dist/chunks/{inspect-PZJM2CWT.js → inspect-JPZFHGAF.js} +8 -8
  56. package/dist/chunks/{inspect-GKJ6T5H4.js → inspect-T6HYEMLA.js} +5 -5
  57. package/dist/chunks/{inspect-35FU5R62.js → inspect-TW5DENBM.js} +7 -7
  58. package/dist/chunks/{list-ITFJYYQ2.js → list-ESW6P765.js} +10 -10
  59. package/dist/chunks/{list-2IIE7CAP.js → list-T7LXP6VX.js} +6 -6
  60. package/dist/chunks/{list-KZETH3ZE.js → list-YQ4LADLW.js} +4 -4
  61. package/dist/chunks/{login-BQPJCJEZ.js → login-VJESL6WK.js} +7 -7
  62. package/dist/chunks/{ls-7GHDK4MD.js → ls-2DYO6E4E.js} +14 -14
  63. package/dist/chunks/{ls-UXUEP54B.js → ls-4A6CGBPD.js} +5 -5
  64. package/dist/chunks/{ls-DL2LA35C.js → ls-5AQBMBOG.js} +5 -5
  65. package/dist/chunks/{ls-ZZFLH7PK.js → ls-5I2W7LZQ.js} +7 -7
  66. package/dist/chunks/{ls-YSFWSM6J.js → ls-Y46O3BCS.js} +5 -5
  67. package/dist/chunks/{open-ADNJQN5E.js → open-SZDSII6L.js} +4 -4
  68. package/dist/chunks/{permissions-72SZCBIY.js → permissions-HRR47E2L.js} +4 -4
  69. package/dist/chunks/{publish-OOAGSEBM.js → publish-D2QWFUP4.js} +3 -3
  70. package/dist/chunks/{push-B6TZDXNF.js → push-75R5ZZIW.js} +7 -7
  71. package/dist/chunks/{query-LZWS5TDH.js → query-LL2GMJWQ.js} +4 -4
  72. package/dist/chunks/{reorder-MRHFKPMK.js → reorder-GNCRV6CV.js} +3 -3
  73. package/dist/chunks/{reply-BKTJXO3B.js → reply-S3UUI6C6.js} +6 -6
  74. package/dist/chunks/{resolve-BKVGSGPN.js → resolve-PCBDK47N.js} +5 -5
  75. package/dist/chunks/{restore-USR7SKWV.js → restore-SXI5SHGJ.js} +3 -3
  76. package/dist/chunks/{rm-37MKKV3I.js → rm-574XTDSM.js} +5 -5
  77. package/dist/chunks/{rm-KUWPNZIS.js → rm-BEIAUTSF.js} +7 -7
  78. package/dist/chunks/{rm-VY3OHKFH.js → rm-YK2EGEPB.js} +5 -5
  79. package/dist/chunks/{rm-2UO6BT3A.js → rm-ZFWVI6JE.js} +7 -7
  80. package/dist/chunks/{rule-inspect-JVDOOTWK.js → rule-inspect-QDQUU3EO.js} +14 -21
  81. package/dist/chunks/{rules-NTBFZBIF.js → rules-FNA3NXZZ.js} +9 -6
  82. package/dist/chunks/{schema-6EZ72OVH.js → schema-5CASPRP6.js} +3 -3
  83. package/dist/chunks/schema-ZNPIMQL5.js +426 -0
  84. package/dist/chunks/{tags-HNPC63QA.js → tags-SRHDQUF6.js} +2 -2
  85. package/dist/chunks/{types-QTOA2BTQ.js → types-UWI4HETD.js} +1 -1
  86. package/dist/chunks/{update-LUYWNZP3.js → update-FSTNM3OX.js} +39 -7
  87. package/dist/commands/build/index.js +271 -2923
  88. package/dist/commands/deploy/index.js +35 -23
  89. package/dist/commands/dev/index.js +41 -18
  90. package/dist/commands/env/index.js +92 -153
  91. package/dist/commands/link/index.js +11 -11
  92. package/dist/commands/list/index.js +6 -6
  93. package/dist/commands-bulk.js +4953 -2881
  94. package/dist/index.js +22 -16
  95. package/dist/vc.js +11 -14
  96. package/dist/version.mjs +1 -1
  97. package/package.json +71 -65
  98. package/dist/chunks/chunk-2MAPZXVV.js +0 -206
  99. package/dist/chunks/{chunk-BUZRVER7.js → chunk-P65EEFTR.js} +3 -3
@@ -4,15 +4,15 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
+ import {
8
+ tagsAggregateCommand
9
+ } from "./chunk-B3JTF4CF.js";
7
10
  import {
8
11
  imageAggregateCommand
9
12
  } from "./chunk-A5KP5HAI.js";
10
13
  import {
11
14
  permissionsAggregateCommand
12
15
  } from "./chunk-J6LK45HT.js";
13
- import {
14
- tagsAggregateCommand
15
- } from "./chunk-B3JTF4CF.js";
16
16
  import {
17
17
  formatOption,
18
18
  jsonOption,
@@ -51,6 +51,15 @@ var pushOption = {
51
51
  deprecated: false,
52
52
  description: "Push the image after building. With Docker this builds and pushes in one step (Buildx enables zstd compression); Podman and Buildah build, then push with zstd compression."
53
53
  };
54
+ var publicOption = {
55
+ name: "public",
56
+ shorthand: null,
57
+ type: String,
58
+ deprecated: false,
59
+ description: "Set the repository visibility: `true` for public, `false` for private.",
60
+ argument: "BOOLEAN",
61
+ choices: ["true", "false"]
62
+ };
54
63
  var listSubcommand = {
55
64
  name: "ls",
56
65
  aliases: ["list"],
@@ -110,6 +119,28 @@ var addSubcommand = {
110
119
  }
111
120
  ]
112
121
  };
122
+ var configSubcommand = {
123
+ name: "config",
124
+ aliases: [],
125
+ description: "Configure a container registry repository, such as the repository's visibility",
126
+ arguments: [
127
+ {
128
+ name: "repository",
129
+ required: true
130
+ }
131
+ ],
132
+ options: [publicOption, projectScopeOption, formatOption, jsonOption],
133
+ examples: [
134
+ {
135
+ name: "Make a repository public",
136
+ value: `${packageName} vcr config my-repository --public true`
137
+ },
138
+ {
139
+ name: "Make a repository private",
140
+ value: `${packageName} vcr config my-repository --public false`
141
+ }
142
+ ]
143
+ };
113
144
  var removeSubcommand = {
114
145
  name: "rm",
115
146
  aliases: ["remove", "delete"],
@@ -235,6 +266,7 @@ var vcrCommand = {
235
266
  listSubcommand,
236
267
  inspectSubcommand,
237
268
  addSubcommand,
269
+ configSubcommand,
238
270
  removeSubcommand,
239
271
  loginSubcommand,
240
272
  buildSubcommand,
@@ -264,6 +296,7 @@ export {
264
296
  listSubcommand,
265
297
  inspectSubcommand,
266
298
  addSubcommand,
299
+ configSubcommand,
267
300
  removeSubcommand,
268
301
  loginSubcommand,
269
302
  buildSubcommand,
@@ -8,7 +8,7 @@ import {
8
8
  formatCondition,
9
9
  formatTransform,
10
10
  isTargetTransform
11
- } from "./chunk-4BUPRO5B.js";
11
+ } from "./chunk-YTIUSEWE.js";
12
12
  import {
13
13
  output_manager_default
14
14
  } from "./chunk-OX7KI3LF.js";
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  getEnvTargetPlaceholder
9
- } from "./chunk-4CCY5OPH.js";
9
+ } from "./chunk-BX4IGDGM.js";
10
10
  import {
11
11
  packageName,
12
12
  projectOption,
@@ -0,0 +1,96 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ isJSONObject
9
+ } from "./chunk-YUISINFV.js";
10
+ import {
11
+ getProjectByNameOrId
12
+ } from "./chunk-BX4IGDGM.js";
13
+ import {
14
+ AGENT_REASON,
15
+ outputAgentError
16
+ } from "./chunk-TJJ562C5.js";
17
+ import {
18
+ ProjectNotFound,
19
+ isAPIError
20
+ } from "./chunk-SOFC4MLS.js";
21
+ import {
22
+ output_manager_default
23
+ } from "./chunk-OX7KI3LF.js";
24
+
25
+ // src/commands/alerts/rules/custom-alert-query.ts
26
+ async function resolveCustomAlertProjectName(client, scope, projectId) {
27
+ if (scope.projectId === projectId && scope.projectName) {
28
+ return scope.projectName;
29
+ }
30
+ try {
31
+ const project = await getProjectByNameOrId(client, projectId, scope.teamId);
32
+ return project instanceof ProjectNotFound ? void 0 : project.name;
33
+ } catch (error) {
34
+ if (isAPIError(error)) {
35
+ return void 0;
36
+ }
37
+ throw error;
38
+ }
39
+ }
40
+ function parseCustomAlertQueryBody(client, body) {
41
+ const customAlert = body.customAlert;
42
+ if (!isJSONObject(customAlert)) {
43
+ return void 0;
44
+ }
45
+ const queryJsonString = customAlert.queryJsonString;
46
+ if (typeof queryJsonString !== "string") {
47
+ return void 0;
48
+ }
49
+ let query;
50
+ try {
51
+ query = JSON.parse(queryJsonString);
52
+ } catch {
53
+ const message = "Invalid JSON in customAlert.queryJsonString.";
54
+ outputAgentError(
55
+ client,
56
+ {
57
+ status: "error",
58
+ reason: AGENT_REASON.INVALID_ARGUMENTS,
59
+ message,
60
+ hint: "Provide queryJsonString as an escaped JSON string. Run `vercel alerts rules schema --type custom_alert` for examples."
61
+ },
62
+ 1
63
+ );
64
+ output_manager_default.error(message);
65
+ return 1;
66
+ }
67
+ if (!isJSONObject(query)) {
68
+ return void 0;
69
+ }
70
+ return { customAlert, query };
71
+ }
72
+ function setMissingCustomAlertProjectScope(parsedQuery, teamId, projectId, projectName) {
73
+ const existingScope = parsedQuery.query.scope;
74
+ if (existingScope !== void 0 && !isJSONObject(existingScope)) {
75
+ return;
76
+ }
77
+ const projectScope = existingScope ?? {
78
+ type: "project",
79
+ ownerId: teamId,
80
+ projectIds: [projectId]
81
+ };
82
+ if (!Object.hasOwn(projectScope, "projectId")) {
83
+ projectScope.projectId = projectId;
84
+ }
85
+ if (projectName && !Object.hasOwn(projectScope, "projectName")) {
86
+ projectScope.projectName = projectName;
87
+ }
88
+ parsedQuery.query.scope = projectScope;
89
+ parsedQuery.customAlert.queryJsonString = JSON.stringify(parsedQuery.query);
90
+ }
91
+
92
+ export {
93
+ resolveCustomAlertProjectName,
94
+ parseCustomAlertQueryBody,
95
+ setMissingCustomAlertProjectScope
96
+ };
@@ -173,7 +173,7 @@ async function isPluginInstalledForTarget(target) {
173
173
  return false;
174
174
  }
175
175
  async function confirm(client, message) {
176
- if (!client.stdin.isTTY) {
176
+ if (client.nonInteractive || !client.stdin.isTTY) {
177
177
  return false;
178
178
  }
179
179
  return client.input.confirm(message, true);
@@ -0,0 +1,21 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+
8
+ // src/util/output/progress.ts
9
+ function progress(current, total, opts = {}) {
10
+ const { width = 20, complete = "=", incomplete = "-" } = opts;
11
+ if (total <= 0 || current < 0 || current > total) {
12
+ return null;
13
+ }
14
+ const unit = total / width;
15
+ const pos = Math.floor(current / unit);
16
+ return `${complete.repeat(pos)}${incomplete.repeat(width - pos)}`;
17
+ }
18
+
19
+ export {
20
+ progress
21
+ };
@@ -7,20 +7,22 @@ const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  getUpdateCommandInfo,
9
9
  isGlobal
10
- } from "./chunk-NJ6QXKQD.js";
10
+ } from "./chunk-U6CTW37A.js";
11
+ import {
12
+ progress
13
+ } from "./chunk-I2XE3GMB.js";
11
14
  import {
12
15
  getGlobalPathConfig,
13
- progress,
14
16
  writeToConfigFile
15
- } from "./chunk-SJYAUEZR.js";
17
+ } from "./chunk-YUISINFV.js";
16
18
  import {
17
19
  validateJsonOutput
18
- } from "./chunk-XPKWKPWA.js";
20
+ } from "./chunk-KXDWXXJH.js";
19
21
  import {
20
22
  apiCommand,
21
23
  listSubcommand4 as listSubcommand,
22
24
  loginCommand
23
- } from "./chunk-3QAUXPIR.js";
25
+ } from "./chunk-NFZHW6HH.js";
24
26
  import {
25
27
  require_semver
26
28
  } from "./chunk-IB5L4LKZ.js";
@@ -29,11 +31,14 @@ import {
29
31
  } from "./chunk-ZX2FSPWV.js";
30
32
  import {
31
33
  login
32
- } from "./chunk-4CCY5OPH.js";
34
+ } from "./chunk-BX4IGDGM.js";
33
35
  import {
34
36
  TelemetryClient,
35
37
  isNativeBinaryInstall
36
38
  } from "./chunk-ECCWJHC6.js";
39
+ import {
40
+ require_ms
41
+ } from "./chunk-GGP5R3FU.js";
37
42
  import {
38
43
  printError,
39
44
  require_strip_ansi
@@ -51,9 +56,6 @@ import {
51
56
  import {
52
57
  output_manager_default
53
58
  } from "./chunk-OX7KI3LF.js";
54
- import {
55
- require_ms
56
- } from "./chunk-GGP5R3FU.js";
57
59
  import {
58
60
  require_source
59
61
  } from "./chunk-S7KYDPEM.js";
@@ -38,7 +38,33 @@ function validateJsonOutput(flags) {
38
38
  return { valid: false, error: err.message };
39
39
  }
40
40
  }
41
+ function wantsMachineReadableOutput(subcommand, argv) {
42
+ if (argv.includes("--help") || argv.includes("-h")) {
43
+ return false;
44
+ }
45
+ if (subcommand === "api") {
46
+ return true;
47
+ }
48
+ if (argv.includes("--json")) {
49
+ return true;
50
+ }
51
+ for (const arg of argv) {
52
+ if (arg.toLowerCase() === "--format=json") {
53
+ return true;
54
+ }
55
+ }
56
+ const formatIdx = argv.indexOf("--format");
57
+ if (formatIdx !== -1 && argv[formatIdx + 1]?.toLowerCase() === "json") {
58
+ return true;
59
+ }
60
+ return false;
61
+ }
62
+ function shouldPrintVersionBanner(subcommand, argv) {
63
+ return !wantsMachineReadableOutput(subcommand, argv);
64
+ }
41
65
 
42
66
  export {
43
- validateJsonOutput
67
+ validateJsonOutput,
68
+ wantsMachineReadableOutput,
69
+ shouldPrintVersionBanner
44
70
  };
@@ -0,0 +1,20 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+
8
+ // src/commands/alerts/rules/schema-help.ts
9
+ var CUSTOM_ALERT_EVENT_HELP = [
10
+ "Run `vercel metrics schema <metric-or-prefix>` to discover available metrics, aggregations, and dimensions. Metric IDs use the `vercel.` namespace, for example `vercel.request.count`.",
11
+ "Custom alert queries use query-engine event and measure names instead of the public metric ID.",
12
+ '`vercel.request.count` maps to `event: "incomingRequest"` and `measure: "count"`.',
13
+ '`vercel.function_invocation.count` maps to `event: "serverlessFunctionInvocation"` and `measure: "count"`.',
14
+ '`vercel.external_api_request.count` maps to `event: "outgoingRequest"` and `measure: "count"`.',
15
+ '`vercel.sandbox.cpu_total_time_ms` maps to `event: "sandboxUsage"` and `measure: "cpuTotalTimeMs"`.'
16
+ ];
17
+
18
+ export {
19
+ CUSTOM_ALERT_EVENT_HELP
20
+ };
@@ -6,14 +6,14 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  setupAndLink
9
- } from "./chunk-UE3JUVUZ.js";
9
+ } from "./chunk-PNSWZSLC.js";
10
10
  import {
11
11
  detectExplicitScope,
12
12
  getLinkedProject,
13
13
  param,
14
14
  printProjectNotFoundError,
15
15
  resolveProjectCwd
16
- } from "./chunk-4CCY5OPH.js";
16
+ } from "./chunk-BX4IGDGM.js";
17
17
  import {
18
18
  buildCommandWithYes,
19
19
  outputActionRequired
@@ -41,7 +41,8 @@ async function ensureLink(commandName, client, cwd, opts = {}) {
41
41
  projectName: opts.projectName,
42
42
  projectNameIsExplicit: Boolean(opts.projectName && opts.failIfNotFound),
43
43
  scopeIsExplicit: detectExplicitScope(client),
44
- allowOwnerLookupFallback: opts.allowOwnerLookupFallback
44
+ allowOwnerLookupFallback: opts.allowOwnerLookupFallback,
45
+ skipRemoteLookup: opts.skipRemoteLookup
45
46
  });
46
47
  }
47
48
  opts.link = link;