wrangler 0.0.0-e978986 → 0.0.0-e9e9872

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 (186) hide show
  1. package/README.md +7 -1
  2. package/bin/wrangler.js +114 -57
  3. package/kv-asset-handler.js +1 -0
  4. package/miniflare-dist/index.mjs +10 -2
  5. package/package.json +159 -152
  6. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  7. package/src/__tests__/config-cache.test.ts +30 -24
  8. package/src/__tests__/configuration.test.ts +3935 -3363
  9. package/src/__tests__/dev.test.tsx +1128 -949
  10. package/src/__tests__/guess-worker-format.test.ts +68 -68
  11. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  12. package/src/__tests__/helpers/mock-account-id.ts +24 -24
  13. package/src/__tests__/helpers/mock-bin.ts +20 -20
  14. package/src/__tests__/helpers/mock-cfetch.ts +92 -92
  15. package/src/__tests__/helpers/mock-console.ts +49 -39
  16. package/src/__tests__/helpers/mock-dialogs.ts +94 -71
  17. package/src/__tests__/helpers/mock-http-server.ts +30 -30
  18. package/src/__tests__/helpers/mock-istty.ts +65 -18
  19. package/src/__tests__/helpers/mock-kv.ts +26 -26
  20. package/src/__tests__/helpers/mock-oauth-flow.ts +223 -228
  21. package/src/__tests__/helpers/mock-process.ts +39 -0
  22. package/src/__tests__/helpers/mock-stdin.ts +82 -77
  23. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  24. package/src/__tests__/helpers/run-in-tmp.ts +27 -28
  25. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  26. package/src/__tests__/helpers/write-worker-source.ts +16 -16
  27. package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
  28. package/src/__tests__/https-options.test.ts +142 -109
  29. package/src/__tests__/index.test.ts +239 -233
  30. package/src/__tests__/init.test.ts +1605 -1180
  31. package/src/__tests__/jest.setup.ts +76 -33
  32. package/src/__tests__/kv.test.ts +1160 -991
  33. package/src/__tests__/logger.test.ts +100 -74
  34. package/src/__tests__/package-manager.test.ts +303 -303
  35. package/src/__tests__/pages.test.ts +1160 -563
  36. package/src/__tests__/parse.test.ts +252 -252
  37. package/src/__tests__/publish.test.ts +6426 -5299
  38. package/src/__tests__/pubsub.test.ts +367 -0
  39. package/src/__tests__/r2.test.ts +133 -133
  40. package/src/__tests__/route.test.ts +18 -18
  41. package/src/__tests__/secret.test.ts +470 -459
  42. package/src/__tests__/tail.test.ts +538 -530
  43. package/src/__tests__/user.test.ts +124 -112
  44. package/src/__tests__/whoami.test.tsx +208 -83
  45. package/src/__tests__/worker-namespace.test.ts +327 -0
  46. package/src/abort.d.ts +1 -1
  47. package/src/api/dev.ts +52 -0
  48. package/src/api/index.ts +1 -0
  49. package/src/bundle-reporter.tsx +29 -0
  50. package/src/bundle.ts +158 -146
  51. package/src/cfetch/index.ts +80 -80
  52. package/src/cfetch/internal.ts +92 -88
  53. package/src/cli.ts +21 -7
  54. package/src/config/config.ts +204 -195
  55. package/src/config/diagnostics.ts +61 -61
  56. package/src/config/environment.ts +390 -357
  57. package/src/config/index.ts +206 -193
  58. package/src/config/validation-helpers.ts +366 -357
  59. package/src/config/validation.ts +1573 -1367
  60. package/src/config-cache.ts +79 -41
  61. package/src/create-worker-preview.ts +206 -136
  62. package/src/create-worker-upload-form.ts +247 -238
  63. package/src/dev/dev-vars.ts +13 -13
  64. package/src/dev/dev.tsx +334 -336
  65. package/src/dev/local.tsx +310 -274
  66. package/src/dev/remote.tsx +366 -211
  67. package/src/dev/use-esbuild.ts +126 -94
  68. package/src/dev.tsx +538 -0
  69. package/src/dialogs.tsx +97 -97
  70. package/src/durable.ts +87 -87
  71. package/src/entry.ts +234 -228
  72. package/src/environment-variables.ts +23 -23
  73. package/src/errors.ts +6 -6
  74. package/src/faye-websocket.d.ts +6 -0
  75. package/src/generate.ts +33 -0
  76. package/src/git-client.ts +42 -0
  77. package/src/global-wrangler-config-path.ts +26 -0
  78. package/src/https-options.ts +84 -80
  79. package/src/index.tsx +1800 -2752
  80. package/src/init.ts +549 -0
  81. package/src/inspect.ts +593 -593
  82. package/src/intl-polyfill.d.ts +123 -123
  83. package/src/is-interactive.ts +12 -0
  84. package/src/kv.ts +299 -277
  85. package/src/logger.ts +46 -39
  86. package/src/miniflare-cli/enum-keys.ts +8 -8
  87. package/src/miniflare-cli/index.ts +43 -31
  88. package/src/miniflare-cli/request-context.ts +18 -18
  89. package/src/module-collection.ts +212 -212
  90. package/src/open-in-browser.ts +4 -6
  91. package/src/package-manager.ts +173 -128
  92. package/src/pages/build.tsx +202 -0
  93. package/src/pages/constants.ts +7 -0
  94. package/src/pages/deployments.tsx +101 -0
  95. package/src/pages/dev.tsx +964 -0
  96. package/src/pages/functions/buildPlugin.ts +105 -0
  97. package/src/pages/functions/buildWorker.ts +151 -0
  98. package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
  99. package/src/pages/functions/filepath-routing.ts +189 -0
  100. package/src/pages/functions/identifiers.ts +78 -0
  101. package/src/pages/functions/routes.ts +151 -0
  102. package/src/pages/index.tsx +84 -0
  103. package/src/pages/projects.tsx +157 -0
  104. package/src/pages/publish.tsx +335 -0
  105. package/src/pages/types.ts +40 -0
  106. package/src/pages/upload.tsx +396 -0
  107. package/src/pages/utils.ts +12 -0
  108. package/src/parse.ts +209 -125
  109. package/src/paths.ts +6 -6
  110. package/src/preview.ts +31 -0
  111. package/src/proxy.ts +400 -389
  112. package/src/publish.ts +702 -505
  113. package/src/pubsub/index.ts +286 -0
  114. package/src/pubsub/pubsub-commands.tsx +577 -0
  115. package/src/r2.ts +19 -19
  116. package/src/selfsigned.d.ts +23 -23
  117. package/src/sites.tsx +278 -201
  118. package/src/tail/filters.ts +108 -108
  119. package/src/tail/index.ts +217 -217
  120. package/src/tail/printing.ts +45 -45
  121. package/src/update-check.ts +11 -11
  122. package/src/user/choose-account.tsx +60 -0
  123. package/src/user/env-vars.ts +46 -0
  124. package/src/user/generate-auth-url.ts +33 -0
  125. package/src/user/generate-random-state.ts +16 -0
  126. package/src/user/index.ts +3 -0
  127. package/src/user/user.tsx +1170 -0
  128. package/src/whoami.tsx +61 -41
  129. package/src/worker-namespace.ts +190 -0
  130. package/src/worker.ts +110 -99
  131. package/src/zones.ts +76 -0
  132. package/templates/checked-fetch.js +17 -0
  133. package/templates/new-worker-scheduled.js +4 -4
  134. package/templates/new-worker-scheduled.ts +16 -16
  135. package/templates/new-worker.js +3 -3
  136. package/templates/new-worker.ts +15 -15
  137. package/templates/no-op-worker.js +10 -0
  138. package/templates/pages-template-plugin.ts +155 -0
  139. package/templates/pages-template-worker.ts +161 -0
  140. package/templates/static-asset-facade.js +38 -36
  141. package/templates/tsconfig.json +95 -95
  142. package/wrangler-dist/cli.d.ts +298 -0
  143. package/wrangler-dist/cli.js +33496 -31370
  144. package/pages/functions/buildPlugin.ts +0 -105
  145. package/pages/functions/buildWorker.ts +0 -151
  146. package/pages/functions/filepath-routing.ts +0 -189
  147. package/pages/functions/identifiers.ts +0 -78
  148. package/pages/functions/routes.ts +0 -156
  149. package/pages/functions/template-plugin.ts +0 -147
  150. package/pages/functions/template-worker.ts +0 -143
  151. package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
  152. package/src/pages.tsx +0 -2027
  153. package/src/user.tsx +0 -1203
  154. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  155. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  156. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  157. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  158. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  159. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  160. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  161. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  162. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  163. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  164. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  165. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  166. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  167. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  168. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  169. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  170. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  171. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  172. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  173. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  174. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  175. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  176. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  177. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  178. package/vendor/wrangler-mime/LICENSE +0 -21
  179. package/vendor/wrangler-mime/Mime.js +0 -97
  180. package/vendor/wrangler-mime/README.md +0 -187
  181. package/vendor/wrangler-mime/cli.js +0 -46
  182. package/vendor/wrangler-mime/index.js +0 -4
  183. package/vendor/wrangler-mime/lite.js +0 -4
  184. package/vendor/wrangler-mime/package.json +0 -52
  185. package/vendor/wrangler-mime/types/other.js +0 -1
  186. package/vendor/wrangler-mime/types/standard.js +0 -1
@@ -1,44 +1,44 @@
1
1
  import {
2
- formatMessage,
3
- searchLocation,
4
- indexLocation,
5
- parseJSON,
6
- parseTOML,
2
+ formatMessage,
3
+ searchLocation,
4
+ indexLocation,
5
+ parseJSON,
6
+ parseTOML,
7
7
  } from "../parse";
8
8
  import type { Message } from "../parse";
9
9
 
10
10
  describe("formatMessage", () => {
11
- const format = (input: Message) => {
12
- // No color and skip emojis at the start.
13
- return formatMessage(input, false).substring(2);
14
- };
11
+ const format = (input: Message) => {
12
+ // No color and skip emojis at the start.
13
+ return formatMessage(input, false).substring(2);
14
+ };
15
15
 
16
- it("should format message without location", () => {
17
- expect(
18
- format({
19
- text: "Invalid argument",
20
- kind: "warning",
21
- })
22
- ).toMatchInlineSnapshot(`
16
+ it("should format message without location", () => {
17
+ expect(
18
+ format({
19
+ text: "Invalid argument",
20
+ kind: "warning",
21
+ })
22
+ ).toMatchInlineSnapshot(`
23
23
  "[WARNING] Invalid argument
24
24
 
25
25
  "
26
26
  `);
27
- });
27
+ });
28
28
 
29
- it("should format message with location", () => {
30
- expect(
31
- format({
32
- text: "Missing property: main",
33
- location: {
34
- line: 1,
35
- column: 0,
36
- lineText: "{}",
37
- file: "package.json",
38
- fileText: "{}",
39
- },
40
- })
41
- ).toMatchInlineSnapshot(`
29
+ it("should format message with location", () => {
30
+ expect(
31
+ format({
32
+ text: "Missing property: main",
33
+ location: {
34
+ line: 1,
35
+ column: 0,
36
+ lineText: "{}",
37
+ file: "package.json",
38
+ fileText: "{}",
39
+ },
40
+ })
41
+ ).toMatchInlineSnapshot(`
42
42
  "[ERROR] Missing property: main
43
43
 
44
44
  package.json:1:0:
@@ -47,28 +47,28 @@ describe("formatMessage", () => {
47
47
 
48
48
  "
49
49
  `);
50
- });
50
+ });
51
51
 
52
- it("should format message with location and notes", () => {
53
- expect(
54
- format({
55
- text: "Invalid property: type",
56
- location: {
57
- line: 3,
58
- column: 8,
59
- length: 7,
60
- lineText: "type = 'modular'",
61
- suggestion: "Did you mean 'module'?",
62
- file: "package.toml",
63
- fileText: "[package]\ntype = 'modular'\n",
64
- },
65
- notes: [
66
- {
67
- text: "There are two acceptable types: 'module' and 'commonjs'",
68
- },
69
- ],
70
- })
71
- ).toMatchInlineSnapshot(`
52
+ it("should format message with location and notes", () => {
53
+ expect(
54
+ format({
55
+ text: "Invalid property: type",
56
+ location: {
57
+ line: 3,
58
+ column: 8,
59
+ length: 7,
60
+ lineText: "type = 'modular'",
61
+ suggestion: "Did you mean 'module'?",
62
+ file: "package.toml",
63
+ fileText: "[package]\ntype = 'modular'\n",
64
+ },
65
+ notes: [
66
+ {
67
+ text: "There are two acceptable types: 'module' and 'commonjs'",
68
+ },
69
+ ],
70
+ })
71
+ ).toMatchInlineSnapshot(`
72
72
  "[ERROR] Invalid property: type
73
73
 
74
74
  package.toml:3:8:
@@ -80,29 +80,29 @@ describe("formatMessage", () => {
80
80
 
81
81
  "
82
82
  `);
83
- });
83
+ });
84
84
  });
85
85
 
86
86
  describe("parseTOML", () => {
87
- it("should parse toml that is empty", () => {
88
- expect(parseTOML("")).toStrictEqual({});
89
- });
87
+ it("should parse toml that is empty", () => {
88
+ expect(parseTOML("")).toStrictEqual({});
89
+ });
90
90
 
91
- it("should parse toml with basic values", () => {
92
- expect(
93
- parseTOML(`
91
+ it("should parse toml with basic values", () => {
92
+ expect(
93
+ parseTOML(`
94
94
  name = "basic"
95
95
  version = 1
96
96
  `)
97
- ).toStrictEqual({
98
- name: "basic",
99
- version: 1,
100
- });
101
- });
97
+ ).toStrictEqual({
98
+ name: "basic",
99
+ version: 1,
100
+ });
101
+ });
102
102
 
103
- it("should parse toml with complex values", () => {
104
- expect(
105
- parseTOML(`
103
+ it("should parse toml with complex values", () => {
104
+ expect(
105
+ parseTOML(`
106
106
  name = 'complex'
107
107
  version = 1
108
108
  [owner]
@@ -111,220 +111,220 @@ describe("parseTOML", () => {
111
111
  [owner.dog]
112
112
  exists = true
113
113
  `)
114
- ).toStrictEqual({
115
- name: "complex",
116
- owner: {
117
- alive: true,
118
- dog: {
119
- exists: true,
120
- },
121
- name: ["tim"],
122
- },
123
- version: 1,
124
- });
125
- });
114
+ ).toStrictEqual({
115
+ name: "complex",
116
+ owner: {
117
+ alive: true,
118
+ dog: {
119
+ exists: true,
120
+ },
121
+ name: ["tim"],
122
+ },
123
+ version: 1,
124
+ });
125
+ });
126
126
 
127
- it("should fail to parse toml with invalid string", () => {
128
- try {
129
- parseTOML(`name = 'fail"`);
130
- fail("parseTOML did not throw");
131
- } catch (err) {
132
- expect({ ...(err as Error) }).toStrictEqual({
133
- name: "ParseError",
134
- text: "Unterminated string",
135
- kind: "error",
136
- location: {
137
- line: 1,
138
- column: 14,
139
- fileText: "name = 'fail\"",
140
- file: undefined,
141
- lineText: "name = 'fail\"",
142
- },
143
- notes: [],
144
- });
145
- }
146
- });
127
+ it("should fail to parse toml with invalid string", () => {
128
+ try {
129
+ parseTOML(`name = 'fail"`);
130
+ fail("parseTOML did not throw");
131
+ } catch (err) {
132
+ expect({ ...(err as Error) }).toStrictEqual({
133
+ name: "ParseError",
134
+ text: "Unterminated string",
135
+ kind: "error",
136
+ location: {
137
+ line: 1,
138
+ column: 14,
139
+ fileText: "name = 'fail\"",
140
+ file: undefined,
141
+ lineText: "name = 'fail\"",
142
+ },
143
+ notes: [],
144
+ });
145
+ }
146
+ });
147
147
 
148
- it("should fail to parse toml with invalid header", () => {
149
- try {
150
- parseTOML(`\n[name`, "config.toml");
151
- fail("parseTOML did not throw");
152
- } catch (err) {
153
- expect({ ...(err as Error) }).toStrictEqual({
154
- name: "ParseError",
155
- text: "Key ended without value",
156
- kind: "error",
157
- location: {
158
- line: 2,
159
- column: 5,
160
- lineText: "[name",
161
- file: "config.toml",
162
- fileText: "\n[name",
163
- },
164
- notes: [],
165
- });
166
- }
167
- });
148
+ it("should fail to parse toml with invalid header", () => {
149
+ try {
150
+ parseTOML(`\n[name`, "config.toml");
151
+ fail("parseTOML did not throw");
152
+ } catch (err) {
153
+ expect({ ...(err as Error) }).toStrictEqual({
154
+ name: "ParseError",
155
+ text: "Key ended without value",
156
+ kind: "error",
157
+ location: {
158
+ line: 2,
159
+ column: 5,
160
+ lineText: "[name",
161
+ file: "config.toml",
162
+ fileText: "\n[name",
163
+ },
164
+ notes: [],
165
+ });
166
+ }
167
+ });
168
168
 
169
- it("should cope with Windows line-endings", () => {
170
- expect(
171
- parseTOML(
172
- "# A comment with a Windows line-ending\r\n# Another comment with a Windows line-ending\r\n"
173
- )
174
- ).toEqual({});
175
- });
169
+ it("should cope with Windows line-endings", () => {
170
+ expect(
171
+ parseTOML(
172
+ "# A comment with a Windows line-ending\r\n# Another comment with a Windows line-ending\r\n"
173
+ )
174
+ ).toEqual({});
175
+ });
176
176
  });
177
177
 
178
178
  describe("parseJSON", () => {
179
- it("should parse json that is empty", () => {
180
- expect(parseJSON("{}")).toStrictEqual({});
181
- });
179
+ it("should parse json that is empty", () => {
180
+ expect(parseJSON("{}")).toStrictEqual({});
181
+ });
182
182
 
183
- it("should parse json with basic values", () => {
184
- expect(
185
- parseJSON(`
183
+ it("should parse json with basic values", () => {
184
+ expect(
185
+ parseJSON(`
186
186
  {
187
187
  "name" : "basic",
188
188
  "version": 1
189
189
  }`)
190
- ).toStrictEqual({
191
- name: "basic",
192
- version: 1,
193
- });
194
- });
190
+ ).toStrictEqual({
191
+ name: "basic",
192
+ version: 1,
193
+ });
194
+ });
195
195
 
196
- it("should parse json with complex values", () => {
197
- expect(
198
- parseJSON(
199
- `{
196
+ it("should parse json with complex values", () => {
197
+ expect(
198
+ parseJSON(
199
+ `{
200
200
  "name":"complex",
201
201
  "spec":{
202
202
  "uptime":[1,2.5,3],
203
203
  "ok":true
204
204
  }
205
205
  }`
206
- )
207
- ).toStrictEqual({
208
- name: "complex",
209
- spec: {
210
- uptime: [1, 2.5, 3],
211
- ok: true,
212
- },
213
- });
214
- });
206
+ )
207
+ ).toStrictEqual({
208
+ name: "complex",
209
+ spec: {
210
+ uptime: [1, 2.5, 3],
211
+ ok: true,
212
+ },
213
+ });
214
+ });
215
215
 
216
- it("should fail to parse json with invalid string", () => {
217
- try {
218
- parseJSON(`\n{\n"version" "1\n}\n`);
219
- fail("parseJSON did not throw");
220
- } catch (err) {
221
- expect({ ...(err as Error) }).toStrictEqual({
222
- name: "ParseError",
223
- text: "Unexpected string",
224
- kind: "error",
225
- location: {
226
- line: 3,
227
- column: 9,
228
- lineText: '"version" "1',
229
- file: undefined,
230
- fileText: `\n{\n"version" "1\n}\n`,
231
- },
232
- notes: [],
233
- });
234
- }
235
- });
216
+ it("should fail to parse json with invalid string", () => {
217
+ try {
218
+ parseJSON(`\n{\n"version" "1\n}\n`);
219
+ fail("parseJSON did not throw");
220
+ } catch (err) {
221
+ expect({ ...(err as Error) }).toStrictEqual({
222
+ name: "ParseError",
223
+ text: "Unexpected string",
224
+ kind: "error",
225
+ location: {
226
+ line: 3,
227
+ column: 9,
228
+ lineText: '"version" "1',
229
+ file: undefined,
230
+ fileText: `\n{\n"version" "1\n}\n`,
231
+ },
232
+ notes: [],
233
+ });
234
+ }
235
+ });
236
236
 
237
- it("should fail to parse json with invalid number", () => {
238
- const file = "config.json",
239
- fileText = `{\n\t"a":{\n\t\t"b":{\n\t\t\t"c":[012345]\n}\n}\n}`;
240
- try {
241
- parseJSON(fileText, file);
242
- fail("parseJSON did not throw");
243
- } catch (err) {
244
- expect({ ...(err as Error) }).toStrictEqual({
245
- name: "ParseError",
246
- text: "Unexpected number",
247
- kind: "error",
248
- location: {
249
- file,
250
- fileText,
251
- line: 4,
252
- column: 8,
253
- lineText: `\t\t\t"c":[012345]`,
254
- },
255
- notes: [],
256
- });
257
- }
258
- });
237
+ it("should fail to parse json with invalid number", () => {
238
+ const file = "config.json",
239
+ fileText = `{\n\t"a":{\n\t\t"b":{\n\t\t\t"c":[012345]\n}\n}\n}`;
240
+ try {
241
+ parseJSON(fileText, file);
242
+ fail("parseJSON did not throw");
243
+ } catch (err) {
244
+ expect({ ...(err as Error) }).toStrictEqual({
245
+ name: "ParseError",
246
+ text: "Unexpected number",
247
+ kind: "error",
248
+ location: {
249
+ file,
250
+ fileText,
251
+ line: 4,
252
+ column: 8,
253
+ lineText: `\t\t\t"c":[012345]`,
254
+ },
255
+ notes: [],
256
+ });
257
+ }
258
+ });
259
259
  });
260
260
 
261
261
  describe("indexLocation", () => {
262
- it("should calculate location from one-line input", () => {
263
- const fileText = "";
264
- expect(indexLocation({ fileText }, 1)).toStrictEqual({
265
- fileText,
266
- line: 1,
267
- column: 0,
268
- lineText: "",
269
- });
270
- });
262
+ it("should calculate location from one-line input", () => {
263
+ const fileText = "";
264
+ expect(indexLocation({ fileText }, 1)).toStrictEqual({
265
+ fileText,
266
+ line: 1,
267
+ column: 0,
268
+ lineText: "",
269
+ });
270
+ });
271
271
 
272
- it("should calculate location from multi-line input", () => {
273
- const file = "package.json",
274
- fileText = `\n{\n\t"hello":"world"\n}\n`;
275
- expect(indexLocation({ file, fileText }, 11)).toStrictEqual({
276
- file,
277
- fileText,
278
- line: 3,
279
- column: 7,
280
- lineText: `\t"hello":"world"`,
281
- });
282
- });
272
+ it("should calculate location from multi-line input", () => {
273
+ const file = "package.json",
274
+ fileText = `\n{\n\t"hello":"world"\n}\n`;
275
+ expect(indexLocation({ file, fileText }, 11)).toStrictEqual({
276
+ file,
277
+ fileText,
278
+ line: 3,
279
+ column: 7,
280
+ lineText: `\t"hello":"world"`,
281
+ });
282
+ });
283
283
 
284
- it("should calculate location when index is out of bounds", () => {
285
- const fileText = `\n\n\n\n`;
286
- expect(indexLocation({ fileText }, 10)).toStrictEqual({
287
- fileText,
288
- line: 5,
289
- column: 0,
290
- lineText: undefined,
291
- });
292
- });
284
+ it("should calculate location when index is out of bounds", () => {
285
+ const fileText = `\n\n\n\n`;
286
+ expect(indexLocation({ fileText }, 10)).toStrictEqual({
287
+ fileText,
288
+ line: 5,
289
+ column: 0,
290
+ lineText: undefined,
291
+ });
292
+ });
293
293
  });
294
294
 
295
295
  describe("searchLocation", () => {
296
- it("should calculate location from one-line match", () => {
297
- const file = "config.toml",
298
- fileText = `name = 'coolthing'`;
299
- expect(searchLocation({ file, fileText }, "coolthing")).toStrictEqual({
300
- file,
301
- fileText,
302
- line: 1,
303
- column: 8,
304
- length: 9,
305
- lineText: `name = 'coolthing'`,
306
- });
307
- });
296
+ it("should calculate location from one-line match", () => {
297
+ const file = "config.toml",
298
+ fileText = `name = 'coolthing'`;
299
+ expect(searchLocation({ file, fileText }, "coolthing")).toStrictEqual({
300
+ file,
301
+ fileText,
302
+ line: 1,
303
+ column: 8,
304
+ length: 9,
305
+ lineText: `name = 'coolthing'`,
306
+ });
307
+ });
308
308
 
309
- it("should calculate location from multi-line match", () => {
310
- const fileText = `\n{"versions":[\n\t"1.2.3",\n\t"1.2.4",\n\t"1.2.5"\n]}\n`;
311
- expect(searchLocation({ fileText }, "1.2.4")).toStrictEqual({
312
- fileText,
313
- line: 4,
314
- column: 2,
315
- length: 5,
316
- lineText: `\t"1.2.4",`,
317
- });
318
- });
309
+ it("should calculate location from multi-line match", () => {
310
+ const fileText = `\n{"versions":[\n\t"1.2.3",\n\t"1.2.4",\n\t"1.2.5"\n]}\n`;
311
+ expect(searchLocation({ fileText }, "1.2.4")).toStrictEqual({
312
+ fileText,
313
+ line: 4,
314
+ column: 2,
315
+ length: 5,
316
+ lineText: `\t"1.2.4",`,
317
+ });
318
+ });
319
319
 
320
- it("should calculate location from no match", () => {
321
- const fileText = `\n{}\n`;
322
- expect(searchLocation({ fileText }, "apple")).toStrictEqual({
323
- fileText,
324
- line: 3,
325
- column: 0,
326
- length: undefined,
327
- lineText: undefined,
328
- });
329
- });
320
+ it("should calculate location from no match", () => {
321
+ const fileText = `\n{}\n`;
322
+ expect(searchLocation({ fileText }, "apple")).toStrictEqual({
323
+ fileText,
324
+ line: 3,
325
+ column: 0,
326
+ length: undefined,
327
+ lineText: undefined,
328
+ });
329
+ });
330
330
  });