@zuplo/cli 7.12.2 → 7.12.4

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 (51) hide show
  1. package/node_modules/@inquirer/checkbox/dist/index.js +4 -0
  2. package/node_modules/@inquirer/checkbox/package.json +3 -3
  3. package/node_modules/@inquirer/confirm/package.json +3 -3
  4. package/node_modules/@inquirer/core/dist/lib/create-prompt.js +3 -1
  5. package/node_modules/@inquirer/core/package.json +2 -2
  6. package/node_modules/@inquirer/editor/package.json +3 -3
  7. package/node_modules/@inquirer/expand/package.json +3 -3
  8. package/node_modules/@inquirer/input/package.json +3 -3
  9. package/node_modules/@inquirer/number/dist/index.js +1 -1
  10. package/node_modules/@inquirer/number/package.json +3 -3
  11. package/node_modules/@inquirer/password/package.json +3 -3
  12. package/node_modules/@inquirer/rawlist/package.json +3 -3
  13. package/node_modules/@inquirer/search/package.json +3 -3
  14. package/node_modules/@inquirer/select/package.json +3 -3
  15. package/node_modules/@zuplo/core/customer.cli.minified.js +269 -269
  16. package/node_modules/@zuplo/core/index.minified.js +262 -262
  17. package/node_modules/@zuplo/core/package.json +1 -1
  18. package/node_modules/@zuplo/graphql/package.json +1 -1
  19. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  20. package/node_modules/@zuplo/otel/package.json +1 -1
  21. package/node_modules/@zuplo/runtime/out/esm/{chunk-3UPXKWR6.js → chunk-RH345HSZ.js} +3 -3
  22. package/node_modules/@zuplo/runtime/out/esm/chunk-RH345HSZ.js.map +1 -0
  23. package/node_modules/@zuplo/runtime/out/esm/chunk-WIQFTAJL.js +26 -0
  24. package/node_modules/@zuplo/runtime/out/esm/chunk-WIQFTAJL.js.map +1 -0
  25. package/node_modules/@zuplo/runtime/out/esm/{chunk-M62BWITW.js → chunk-WTWRZT3M.js} +118 -117
  26. package/node_modules/@zuplo/runtime/out/esm/chunk-WTWRZT3M.js.map +1 -0
  27. package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
  28. package/node_modules/@zuplo/runtime/out/esm/index.js.map +1 -1
  29. package/node_modules/@zuplo/runtime/out/esm/internal/index.js +1 -1
  30. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
  31. package/node_modules/@zuplo/runtime/out/esm/mocks/index.js +1 -1
  32. package/node_modules/@zuplo/runtime/out/esm/sdks/aws/index.js +1 -1
  33. package/node_modules/@zuplo/runtime/out/types/index.d.ts +140 -16
  34. package/node_modules/@zuplo/runtime/out/types/internal/index.d.ts +93 -16
  35. package/node_modules/@zuplo/runtime/package.json +1 -1
  36. package/node_modules/fast-uri/.github/workflows/release.yml +35 -0
  37. package/node_modules/fast-uri/README.md +8 -0
  38. package/node_modules/fast-uri/index.js +98 -18
  39. package/node_modules/fast-uri/lib/utils.js +52 -0
  40. package/node_modules/fast-uri/package.json +1 -1
  41. package/node_modules/fast-uri/test/host-delimiter-security.test.js +94 -0
  42. package/node_modules/fast-uri/test/relative-normalization-security.test.js +156 -0
  43. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +32 -4
  44. package/node_modules/fast-uri/test/scheme-validation.test.js +53 -14
  45. package/package.json +11 -11
  46. package/node_modules/@zuplo/runtime/out/esm/chunk-3UPXKWR6.js.map +0 -1
  47. package/node_modules/@zuplo/runtime/out/esm/chunk-GQMNFQTN.js +0 -26
  48. package/node_modules/@zuplo/runtime/out/esm/chunk-GQMNFQTN.js.map +0 -1
  49. package/node_modules/@zuplo/runtime/out/esm/chunk-M62BWITW.js.map +0 -1
  50. /package/node_modules/@zuplo/runtime/out/esm/{chunk-3UPXKWR6.js.LEGAL.txt → chunk-RH345HSZ.js.LEGAL.txt} +0 -0
  51. /package/node_modules/@zuplo/runtime/out/esm/{chunk-M62BWITW.js.LEGAL.txt → chunk-WTWRZT3M.js.LEGAL.txt} +0 -0
@@ -15,7 +15,15 @@ const malformedSchemes = [
15
15
  'foo_bar:value',
16
16
  'éxample:value',
17
17
  'Kttp://example.com/',
18
- 'ſcheme:value'
18
+ 'ſcheme:value',
19
+ // RFC 3986 section 3.1 does not allow percent-encoding in a scheme.
20
+ '%4Aavascript:alert(1)',
21
+ '%6aavascript:alert(1)',
22
+ 'foo%2Bbar:value',
23
+ '%u006Aavascript:1',
24
+ 'ht%74ps://example.com/',
25
+ 'ma%69lto:user@example.org',
26
+ '%64ata:text/html,x'
19
27
  ]
20
28
 
21
29
  test('parse validates the decoded scheme against RFC 3986', (t) => {
@@ -23,10 +31,7 @@ test('parse validates the decoded scheme against RFC 3986', (t) => {
23
31
  ['a:value', 'a'],
24
32
  ['HTTP://example.com/', 'http'],
25
33
  ['a1+.-:value', 'a1+.-'],
26
- ['%4Aavascript:alert(1)', 'javascript'],
27
- ['foo%2Bbar:value', 'foo+bar'],
28
- ['%u006Aavascript:1', 'javascript'],
29
- ['ht%74ps://example.com/', 'https']
34
+ ['foo+bar:value', 'foo+bar']
30
35
  ]
31
36
 
32
37
  for (const [uri, scheme] of validSchemes) {
@@ -42,17 +47,41 @@ test('parse validates the decoded scheme against RFC 3986', (t) => {
42
47
  t.end()
43
48
  })
44
49
 
45
- test('decoded schemes select their scheme handlers', (t) => {
50
+ test('percent-encoded schemes do not select scheme handlers', (t) => {
46
51
  t.equal(
47
52
  fastURI.normalize('ht%74ps://example.com:443'),
48
- 'https://example.com/',
49
- 'HTTP normalization runs after decoding the scheme'
53
+ 'ht%74ps://example.com:443',
54
+ 'HTTP normalization does not run for an encoded scheme'
50
55
  )
51
56
 
52
57
  // 3.x has no mailto scheme handler (added in v4); use the ws handler to
53
- // verify that a percent-encoded scheme still selects its scheme handler
54
- const ws = fastURI.parse('we%62socket://example.com/')
55
- t.equal(ws.scheme, 'websocket', 'ws parsing runs after decoding the scheme')
58
+ // verify that a percent-encoded scheme does not select its scheme handler
59
+ const ws = fastURI.parse('w%73://example.com/a?b')
60
+ t.equal(ws.resourceName, undefined, 'ws parsing does not run for an encoded scheme')
61
+ t.equal(ws.error, MALFORMED_SCHEME_ERROR)
62
+ t.end()
63
+ })
64
+
65
+ test('normalization cannot synthesize a scheme from encoded input', (t) => {
66
+ const inputs = [
67
+ '%6Aavascript:alert(1)',
68
+ '%4A%41%56%41%53%43%52%49%50%54:alert(1)',
69
+ '%u006Aavascript:alert(1)',
70
+ 'j%61vascript:alert(1)',
71
+ '%64ata:text/html,<script>alert(1)</script>',
72
+ 'vb%73cript:msgbox(1)'
73
+ ]
74
+
75
+ for (const uri of inputs) {
76
+ const parsed = fastURI.parse(uri)
77
+ t.equal(parsed.error, MALFORMED_SCHEME_ERROR, uri + ' is malformed')
78
+ t.notOk(/^(?:javascript|data|vbscript):/i.test(String(parsed.scheme) + ':'), uri + ' parsed scheme is not decoded')
79
+ t.equal(fastURI.normalize(uri), uri, uri + ' normalizes to itself')
80
+ t.equal(fastURI.equal(uri, uri), false, uri + ' is not comparable')
81
+ t.throws(() => fastURI.resolve('https://example.com/app/', uri), /URI scheme is malformed\./, uri + ' is rejected by resolve')
82
+ }
83
+
84
+ t.equal(fastURI.equal('%68ttp://a/', 'http://a/'), false, 'encoded scheme does not alias a plain scheme')
56
85
  t.end()
57
86
  })
58
87
 
@@ -95,11 +124,21 @@ test('resolve rejects malformed decoded schemes in either input', (t) => {
95
124
  t.end()
96
125
  })
97
126
 
98
- test('serialize validates decoded component schemes', (t) => {
127
+ test('serialize validates component schemes without decoding them', (t) => {
99
128
  t.equal(
100
- fastURI.serialize({ scheme: 'foo%2Bbar', path: 'value' }),
129
+ fastURI.serialize({ scheme: 'foo+bar', path: 'value' }),
101
130
  'foo+bar:value',
102
- 'valid decoded scheme is serialized'
131
+ 'valid scheme is serialized'
132
+ )
133
+ t.throws(
134
+ () => fastURI.serialize({ scheme: 'foo%2Bbar', path: 'value' }),
135
+ /URI scheme is malformed\./,
136
+ 'percent-encoded scheme is rejected'
137
+ )
138
+ t.throws(
139
+ () => fastURI.serialize({ scheme: '%6Aavascript', path: 'alert(1)' }),
140
+ /URI scheme is malformed\./,
141
+ 'encoded scheme cannot serialize as javascript:'
103
142
  )
104
143
  t.throws(
105
144
  () => fastURI.serialize({ scheme: '//evil.example', path: '/pwn' }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/cli",
3
- "version": "7.12.2",
3
+ "version": "7.12.4",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -31,10 +31,10 @@
31
31
  "@opentelemetry/api": "1.9.0",
32
32
  "@opentelemetry/api-logs": "0.220.0",
33
33
  "@swc/core": "1.10.18",
34
- "@zuplo/core": "7.12.2",
34
+ "@zuplo/core": "7.12.4",
35
35
  "@zuplo/editor": "1.0.33162667821",
36
- "@zuplo/openapi-tools": "7.12.2",
37
- "@zuplo/runtime": "7.12.2",
36
+ "@zuplo/openapi-tools": "7.12.4",
37
+ "@zuplo/runtime": "7.12.4",
38
38
  "chalk": "5.4.1",
39
39
  "chokidar": "3.5.3",
40
40
  "cookie": "1.0.2",
@@ -65,15 +65,15 @@
65
65
  "workerd": "1.20261002.1",
66
66
  "yargs": "17.7.2",
67
67
  "zod": "4.4.3",
68
- "@zuplo/graphql": "7.12.2",
69
- "@zuplo/otel": "7.12.2"
68
+ "@zuplo/graphql": "7.12.4",
69
+ "@zuplo/otel": "7.12.4"
70
70
  },
71
71
  "optionalDependencies": {
72
- "@zuplo/lint-darwin-arm64": "7.12.2",
73
- "@zuplo/lint-darwin-x64": "7.12.2",
74
- "@zuplo/lint-linux-x64": "7.12.2",
75
- "@zuplo/lint-linux-arm64": "7.12.2",
76
- "@zuplo/lint-win32-x64": "7.12.2"
72
+ "@zuplo/lint-darwin-arm64": "7.12.4",
73
+ "@zuplo/lint-darwin-x64": "7.12.4",
74
+ "@zuplo/lint-linux-x64": "7.12.4",
75
+ "@zuplo/lint-linux-arm64": "7.12.4",
76
+ "@zuplo/lint-win32-x64": "7.12.4"
77
77
  },
78
78
  "bundleDependencies": [
79
79
  "@inquirer/prompts",