@azure/arm-communication 5.0.0-beta.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/browser/api/communicationServiceManagementContext.js +1 -1
  2. package/dist/browser/api/communicationServiceManagementContext.js.map +1 -1
  3. package/dist/browser/restorePollerHelpers.js.map +1 -1
  4. package/dist/commonjs/api/communicationServiceManagementContext.js +1 -1
  5. package/dist/commonjs/api/communicationServiceManagementContext.js.map +1 -1
  6. package/dist/commonjs/restorePollerHelpers.js.map +2 -2
  7. package/dist/commonjs/tsdoc-metadata.json +1 -1
  8. package/dist/esm/api/communicationServiceManagementContext.js +1 -1
  9. package/dist/esm/api/communicationServiceManagementContext.js.map +1 -1
  10. package/dist/esm/restorePollerHelpers.js.map +1 -1
  11. package/package.json +19 -60
  12. package/dist/react-native/api/communicationServiceManagementContext.d.ts +0 -22
  13. package/dist/react-native/api/communicationServiceManagementContext.js +0 -24
  14. package/dist/react-native/api/communicationServiceManagementContext.js.map +0 -1
  15. package/dist/react-native/api/communicationServices/index.d.ts +0 -3
  16. package/dist/react-native/api/communicationServices/index.js +0 -4
  17. package/dist/react-native/api/communicationServices/index.js.map +0 -1
  18. package/dist/react-native/api/communicationServices/operations.d.ts +0 -52
  19. package/dist/react-native/api/communicationServices/operations.js +0 -305
  20. package/dist/react-native/api/communicationServices/operations.js.map +0 -1
  21. package/dist/react-native/api/communicationServices/options.d.ts +0 -39
  22. package/dist/react-native/api/communicationServices/options.js +0 -4
  23. package/dist/react-native/api/communicationServices/options.js.map +0 -1
  24. package/dist/react-native/api/domains/index.d.ts +0 -3
  25. package/dist/react-native/api/domains/index.js +0 -4
  26. package/dist/react-native/api/domains/index.js.map +0 -1
  27. package/dist/react-native/api/domains/operations.d.ts +0 -40
  28. package/dist/react-native/api/domains/operations.js +0 -242
  29. package/dist/react-native/api/domains/operations.js.map +0 -1
  30. package/dist/react-native/api/domains/options.d.ts +0 -33
  31. package/dist/react-native/api/domains/options.js +0 -4
  32. package/dist/react-native/api/domains/options.js.map +0 -1
  33. package/dist/react-native/api/emailServices/index.d.ts +0 -3
  34. package/dist/react-native/api/emailServices/index.js +0 -4
  35. package/dist/react-native/api/emailServices/index.js.map +0 -1
  36. package/dist/react-native/api/emailServices/operations.d.ts +0 -40
  37. package/dist/react-native/api/emailServices/operations.js +0 -222
  38. package/dist/react-native/api/emailServices/operations.js.map +0 -1
  39. package/dist/react-native/api/emailServices/options.d.ts +0 -29
  40. package/dist/react-native/api/emailServices/options.js +0 -4
  41. package/dist/react-native/api/emailServices/options.js.map +0 -1
  42. package/dist/react-native/api/index.d.ts +0 -3
  43. package/dist/react-native/api/index.js +0 -4
  44. package/dist/react-native/api/index.js.map +0 -1
  45. package/dist/react-native/api/operations/index.d.ts +0 -3
  46. package/dist/react-native/api/operations/index.js +0 -4
  47. package/dist/react-native/api/operations/index.js.map +0 -1
  48. package/dist/react-native/api/operations/operations.d.ts +0 -10
  49. package/dist/react-native/api/operations/operations.js +0 -31
  50. package/dist/react-native/api/operations/operations.js.map +0 -1
  51. package/dist/react-native/api/operations/options.d.ts +0 -5
  52. package/dist/react-native/api/operations/options.js +0 -4
  53. package/dist/react-native/api/operations/options.js.map +0 -1
  54. package/dist/react-native/api/senderUsernames/index.d.ts +0 -3
  55. package/dist/react-native/api/senderUsernames/index.js +0 -4
  56. package/dist/react-native/api/senderUsernames/index.js.map +0 -1
  57. package/dist/react-native/api/senderUsernames/operations.d.ts +0 -27
  58. package/dist/react-native/api/senderUsernames/operations.js +0 -129
  59. package/dist/react-native/api/senderUsernames/operations.js.map +0 -1
  60. package/dist/react-native/api/senderUsernames/options.d.ts +0 -14
  61. package/dist/react-native/api/senderUsernames/options.js +0 -4
  62. package/dist/react-native/api/senderUsernames/options.js.map +0 -1
  63. package/dist/react-native/api/smtpUsernames/index.d.ts +0 -3
  64. package/dist/react-native/api/smtpUsernames/index.js +0 -4
  65. package/dist/react-native/api/smtpUsernames/index.js.map +0 -1
  66. package/dist/react-native/api/smtpUsernames/operations.d.ts +0 -27
  67. package/dist/react-native/api/smtpUsernames/operations.js +0 -125
  68. package/dist/react-native/api/smtpUsernames/operations.js.map +0 -1
  69. package/dist/react-native/api/smtpUsernames/options.d.ts +0 -14
  70. package/dist/react-native/api/smtpUsernames/options.js +0 -4
  71. package/dist/react-native/api/smtpUsernames/options.js.map +0 -1
  72. package/dist/react-native/api/suppressionListAddresses/index.d.ts +0 -3
  73. package/dist/react-native/api/suppressionListAddresses/index.js +0 -4
  74. package/dist/react-native/api/suppressionListAddresses/index.js.map +0 -1
  75. package/dist/react-native/api/suppressionListAddresses/operations.d.ts +0 -27
  76. package/dist/react-native/api/suppressionListAddresses/operations.js +0 -133
  77. package/dist/react-native/api/suppressionListAddresses/operations.js.map +0 -1
  78. package/dist/react-native/api/suppressionListAddresses/options.d.ts +0 -14
  79. package/dist/react-native/api/suppressionListAddresses/options.js +0 -4
  80. package/dist/react-native/api/suppressionListAddresses/options.js.map +0 -1
  81. package/dist/react-native/api/suppressionLists/index.d.ts +0 -3
  82. package/dist/react-native/api/suppressionLists/index.js +0 -4
  83. package/dist/react-native/api/suppressionLists/index.js.map +0 -1
  84. package/dist/react-native/api/suppressionLists/operations.d.ts +0 -27
  85. package/dist/react-native/api/suppressionLists/operations.js +0 -129
  86. package/dist/react-native/api/suppressionLists/operations.js.map +0 -1
  87. package/dist/react-native/api/suppressionLists/options.d.ts +0 -14
  88. package/dist/react-native/api/suppressionLists/options.js +0 -4
  89. package/dist/react-native/api/suppressionLists/options.js.map +0 -1
  90. package/dist/react-native/classic/communicationServices/index.d.ts +0 -44
  91. package/dist/react-native/classic/communicationServices/index.js +0 -40
  92. package/dist/react-native/classic/communicationServices/index.js.map +0 -1
  93. package/dist/react-native/classic/domains/index.d.ts +0 -50
  94. package/dist/react-native/classic/domains/index.js +0 -61
  95. package/dist/react-native/classic/domains/index.js.map +0 -1
  96. package/dist/react-native/classic/emailServices/index.d.ts +0 -42
  97. package/dist/react-native/classic/emailServices/index.js +0 -45
  98. package/dist/react-native/classic/emailServices/index.js.map +0 -1
  99. package/dist/react-native/classic/index.d.ts +0 -9
  100. package/dist/react-native/classic/index.js +0 -4
  101. package/dist/react-native/classic/index.js.map +0 -1
  102. package/dist/react-native/classic/operations/index.d.ts +0 -11
  103. package/dist/react-native/classic/operations/index.js +0 -14
  104. package/dist/react-native/classic/operations/index.js.map +0 -1
  105. package/dist/react-native/classic/senderUsernames/index.d.ts +0 -22
  106. package/dist/react-native/classic/senderUsernames/index.js +0 -17
  107. package/dist/react-native/classic/senderUsernames/index.js.map +0 -1
  108. package/dist/react-native/classic/smtpUsernames/index.d.ts +0 -22
  109. package/dist/react-native/classic/smtpUsernames/index.js +0 -17
  110. package/dist/react-native/classic/smtpUsernames/index.js.map +0 -1
  111. package/dist/react-native/classic/suppressionListAddresses/index.d.ts +0 -22
  112. package/dist/react-native/classic/suppressionListAddresses/index.js +0 -17
  113. package/dist/react-native/classic/suppressionListAddresses/index.js.map +0 -1
  114. package/dist/react-native/classic/suppressionLists/index.d.ts +0 -22
  115. package/dist/react-native/classic/suppressionLists/index.js +0 -17
  116. package/dist/react-native/classic/suppressionLists/index.js.map +0 -1
  117. package/dist/react-native/communicationServiceManagementClient.d.ts +0 -36
  118. package/dist/react-native/communicationServiceManagementClient.js +0 -53
  119. package/dist/react-native/communicationServiceManagementClient.js.map +0 -1
  120. package/dist/react-native/index.d.ts +0 -23
  121. package/dist/react-native/index.js +0 -8
  122. package/dist/react-native/index.js.map +0 -1
  123. package/dist/react-native/logger.d.ts +0 -2
  124. package/dist/react-native/logger.js +0 -5
  125. package/dist/react-native/logger.js.map +0 -1
  126. package/dist/react-native/models/index.d.ts +0 -3
  127. package/dist/react-native/models/index.js +0 -4
  128. package/dist/react-native/models/index.js.map +0 -1
  129. package/dist/react-native/models/models.d.ts +0 -991
  130. package/dist/react-native/models/models.js +0 -979
  131. package/dist/react-native/models/models.js.map +0 -1
  132. package/dist/react-native/package.json +0 -3
  133. package/dist/react-native/restorePollerHelpers.d.ts +0 -21
  134. package/dist/react-native/restorePollerHelpers.js +0 -111
  135. package/dist/react-native/restorePollerHelpers.js.map +0 -1
  136. package/dist/react-native/static-helpers/cloudSettingHelpers.d.ts +0 -22
  137. package/dist/react-native/static-helpers/cloudSettingHelpers.js +0 -38
  138. package/dist/react-native/static-helpers/cloudSettingHelpers.js.map +0 -1
  139. package/dist/react-native/static-helpers/pagingHelpers.d.ts +0 -74
  140. package/dist/react-native/static-helpers/pagingHelpers.js +0 -143
  141. package/dist/react-native/static-helpers/pagingHelpers.js.map +0 -1
  142. package/dist/react-native/static-helpers/pollingHelpers.d.ts +0 -34
  143. package/dist/react-native/static-helpers/pollingHelpers.js +0 -95
  144. package/dist/react-native/static-helpers/pollingHelpers.js.map +0 -1
  145. package/dist/react-native/static-helpers/serialization/check-prop-undefined.d.ts +0 -8
  146. package/dist/react-native/static-helpers/serialization/check-prop-undefined.js +0 -17
  147. package/dist/react-native/static-helpers/serialization/check-prop-undefined.js.map +0 -1
  148. package/dist/react-native/static-helpers/simplePollerHelpers.d.ts +0 -73
  149. package/dist/react-native/static-helpers/simplePollerHelpers.js +0 -44
  150. package/dist/react-native/static-helpers/simplePollerHelpers.js.map +0 -1
  151. package/dist/react-native/static-helpers/urlTemplate.d.ts +0 -5
  152. package/dist/react-native/static-helpers/urlTemplate.js +0 -200
  153. package/dist/react-native/static-helpers/urlTemplate.js.map +0 -1
@@ -1,200 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- // ---------------------
4
- // helpers
5
- // ---------------------
6
- function encodeComponent(val, reserved, op) {
7
- return (reserved ?? op === "+") || op === "#"
8
- ? encodeReservedComponent(val)
9
- : encodeRFC3986URIComponent(val);
10
- }
11
- function encodeReservedComponent(str) {
12
- return str
13
- .split(/(%[0-9A-Fa-f]{2})/g)
14
- .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))
15
- .join("");
16
- }
17
- function encodeRFC3986URIComponent(str) {
18
- return encodeURIComponent(str).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
19
- }
20
- function isDefined(val) {
21
- return val !== undefined && val !== null;
22
- }
23
- function getNamedAndIfEmpty(op) {
24
- return [!!op && [";", "?", "&"].includes(op), !!op && ["?", "&"].includes(op) ? "=" : ""];
25
- }
26
- function getFirstOrSep(op, isFirst = false) {
27
- if (isFirst) {
28
- return !op || op === "+" ? "" : op;
29
- }
30
- else if (!op || op === "+" || op === "#") {
31
- return ",";
32
- }
33
- else if (op === "?") {
34
- return "&";
35
- }
36
- else {
37
- return op;
38
- }
39
- }
40
- function getExpandedValue(option) {
41
- let isFirst = option.isFirst;
42
- const { op, varName, varValue: value, reserved } = option;
43
- const vals = [];
44
- const [named, ifEmpty] = getNamedAndIfEmpty(op);
45
- if (Array.isArray(value)) {
46
- for (const val of value.filter(isDefined)) {
47
- // prepare the following parts: separator, varName, value
48
- vals.push(`${getFirstOrSep(op, isFirst)}`);
49
- if (named && varName) {
50
- vals.push(`${encodeURIComponent(varName)}`);
51
- if (val === "") {
52
- vals.push(ifEmpty);
53
- }
54
- else {
55
- vals.push("=");
56
- }
57
- }
58
- vals.push(encodeComponent(val, reserved, op));
59
- isFirst = false;
60
- }
61
- }
62
- else if (typeof value === "object") {
63
- for (const key of Object.keys(value)) {
64
- const val = value[key];
65
- if (!isDefined(val)) {
66
- continue;
67
- }
68
- // prepare the following parts: separator, key, value
69
- vals.push(`${getFirstOrSep(op, isFirst)}`);
70
- if (key) {
71
- vals.push(`${encodeURIComponent(key)}`);
72
- if (named && val === "") {
73
- vals.push(ifEmpty);
74
- }
75
- else {
76
- vals.push("=");
77
- }
78
- }
79
- vals.push(encodeComponent(val, reserved, op));
80
- isFirst = false;
81
- }
82
- }
83
- return vals.join("");
84
- }
85
- function getNonExpandedValue(option) {
86
- const { op, varName, varValue: value, isFirst, reserved } = option;
87
- const vals = [];
88
- const first = getFirstOrSep(op, isFirst);
89
- const [named, ifEmpty] = getNamedAndIfEmpty(op);
90
- if (named && varName) {
91
- vals.push(encodeComponent(varName, reserved, op));
92
- if (value === "") {
93
- if (!ifEmpty) {
94
- vals.push(ifEmpty);
95
- }
96
- return !vals.join("") ? undefined : `${first}${vals.join("")}`;
97
- }
98
- vals.push("=");
99
- }
100
- const items = [];
101
- if (Array.isArray(value)) {
102
- for (const val of value.filter(isDefined)) {
103
- items.push(encodeComponent(val, reserved, op));
104
- }
105
- }
106
- else if (typeof value === "object") {
107
- for (const key of Object.keys(value)) {
108
- if (!isDefined(value[key])) {
109
- continue;
110
- }
111
- items.push(encodeRFC3986URIComponent(key));
112
- items.push(encodeComponent(value[key], reserved, op));
113
- }
114
- }
115
- vals.push(items.join(","));
116
- return !vals.join(",") ? undefined : `${first}${vals.join("")}`;
117
- }
118
- function getVarValue(option) {
119
- const { op, varName, modifier, isFirst, reserved, varValue: value } = option;
120
- if (!isDefined(value)) {
121
- return undefined;
122
- }
123
- else if (["string", "number", "boolean"].includes(typeof value)) {
124
- let val = value.toString();
125
- const [named, ifEmpty] = getNamedAndIfEmpty(op);
126
- const vals = [getFirstOrSep(op, isFirst)];
127
- if (named && varName) {
128
- // No need to encode varName considering it is already encoded
129
- vals.push(varName);
130
- if (val === "") {
131
- vals.push(ifEmpty);
132
- }
133
- else {
134
- vals.push("=");
135
- }
136
- }
137
- if (modifier && modifier !== "*") {
138
- val = val.substring(0, parseInt(modifier, 10));
139
- }
140
- vals.push(encodeComponent(val, reserved, op));
141
- return vals.join("");
142
- }
143
- else if (modifier === "*") {
144
- return getExpandedValue(option);
145
- }
146
- else {
147
- return getNonExpandedValue(option);
148
- }
149
- }
150
- // ---------------------------------------------------------------------------------------------------
151
- // This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.
152
- // ---------------------------------------------------------------------------------------------------
153
- export function expandUrlTemplate(template, context, option) {
154
- const result = template.replace(/\{([^{}]+)\}|([^{}]+)/g, (_, expr, text) => {
155
- if (!expr) {
156
- return encodeReservedComponent(text);
157
- }
158
- let op;
159
- if (["+", "#", ".", "/", ";", "?", "&"].includes(expr[0])) {
160
- op = expr[0];
161
- expr = expr.slice(1);
162
- }
163
- const varList = expr.split(/,/g);
164
- const innerResult = [];
165
- for (const varSpec of varList) {
166
- const varMatch = /([^:*]*)(?::(\d+)|(\*))?/.exec(varSpec);
167
- if (!varMatch || !varMatch[1]) {
168
- continue;
169
- }
170
- const varValue = getVarValue({
171
- isFirst: innerResult.length === 0,
172
- op,
173
- varValue: context[varMatch[1]],
174
- varName: varMatch[1],
175
- modifier: varMatch[2] || varMatch[3],
176
- reserved: option?.allowReserved,
177
- });
178
- if (varValue) {
179
- innerResult.push(varValue);
180
- }
181
- }
182
- return innerResult.join("");
183
- });
184
- return normalizeUnreserved(result);
185
- }
186
- /**
187
- * Normalize an expanded URI by decoding percent-encoded unreserved characters.
188
- * RFC 3986 unreserved: "-" / "." / "~"
189
- */
190
- function normalizeUnreserved(uri) {
191
- return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {
192
- const char = String.fromCharCode(parseInt(hex, 16));
193
- // Decode only if it's unreserved
194
- if (/[.~-]/.test(char)) {
195
- return char;
196
- }
197
- return match; // leave other encodings intact
198
- });
199
- }
200
- //# sourceMappingURL=urlTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"urlTemplate.js","sourceRoot":"","sources":["../../../src/static-helpers/urlTemplate.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string): string {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string): string {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string): string {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any): boolean {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false): string {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions): string {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n if (named && val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions): string | undefined {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n const result = template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expr[0])) {\n op = expr[0];\n expr = expr.slice(1);\n }\n const varList = expr.split(/,/g);\n const innerResult = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: innerResult.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n innerResult.push(varValue);\n }\n }\n return innerResult.join(\"\");\n });\n\n return normalizeUnreserved(result);\n}\n\n/**\n * Normalize an expanded URI by decoding percent-encoded unreserved characters.\n * RFC 3986 unreserved: \"-\" / \".\" / \"~\"\n */\nfunction normalizeUnreserved(uri: string): string {\n return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {\n const char = String.fromCharCode(parseInt(hex, 16));\n // Decode only if it's unreserved\n if (/[.~-]/.test(char)) {\n return char;\n }\n return match; // leave other encodings intact\n });\n}\n"]}