@agent-native/dispatch 0.15.2 → 0.15.3

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 (43) hide show
  1. package/dist/actions/delete-staged-dataset.d.ts +3 -1
  2. package/dist/actions/delete-staged-dataset.js +3 -26
  3. package/dist/actions/delete-staged-dataset.js.map +1 -1
  4. package/dist/actions/delete-workspace-resource.d.ts +13 -13
  5. package/dist/actions/list-staged-datasets.d.ts +1 -1
  6. package/dist/actions/list-staged-datasets.js +3 -28
  7. package/dist/actions/list-staged-datasets.js.map +1 -1
  8. package/dist/actions/provider-api-catalog.d.ts +6 -4
  9. package/dist/actions/provider-api-catalog.js +3 -17
  10. package/dist/actions/provider-api-catalog.js.map +1 -1
  11. package/dist/actions/provider-api-docs.d.ts +21 -2
  12. package/dist/actions/provider-api-docs.js +6 -51
  13. package/dist/actions/provider-api-docs.js.map +1 -1
  14. package/dist/actions/provider-api-register.d.ts +39 -15
  15. package/dist/actions/provider-api-register.js +4 -193
  16. package/dist/actions/provider-api-register.js.map +1 -1
  17. package/dist/actions/provider-api-request.d.ts +34 -2
  18. package/dist/actions/provider-api-request.js +6 -171
  19. package/dist/actions/provider-api-request.js.map +1 -1
  20. package/dist/actions/query-staged-dataset.d.ts +18 -1
  21. package/dist/actions/query-staged-dataset.d.ts.map +1 -1
  22. package/dist/actions/query-staged-dataset.js +3 -100
  23. package/dist/actions/query-staged-dataset.js.map +1 -1
  24. package/dist/actions/upsert-destination.d.ts +12 -12
  25. package/dist/components/layout/Layout.d.ts.map +1 -1
  26. package/dist/components/layout/Layout.js +26 -64
  27. package/dist/components/layout/Layout.js.map +1 -1
  28. package/package.json +4 -3
  29. package/src/actions/delete-staged-dataset.ts +3 -33
  30. package/src/actions/list-staged-datasets.ts +3 -30
  31. package/src/actions/provider-api-audit.spec.ts +2 -3
  32. package/src/actions/provider-api-catalog.ts +10 -23
  33. package/src/actions/provider-api-docs.ts +19 -68
  34. package/src/actions/provider-api-register.ts +5 -233
  35. package/src/actions/provider-api-request.ts +19 -232
  36. package/src/actions/query-staged-dataset.ts +3 -119
  37. package/src/components/layout/Layout.spec.tsx +7 -11
  38. package/src/components/layout/Layout.tsx +42 -145
  39. package/dist/actions/provider-api-audit.d.ts +0 -7
  40. package/dist/actions/provider-api-audit.d.ts.map +0 -1
  41. package/dist/actions/provider-api-audit.js +0 -74
  42. package/dist/actions/provider-api-audit.js.map +0 -1
  43. package/src/actions/provider-api-audit.ts +0 -88
@@ -1,74 +0,0 @@
1
- const REDACTED = "[redacted]";
2
- const CREDENTIAL_NAME = /^(?:api[-_]?key|access[-_]?token|auth(?:orization)?|bearer|credential|password|secret|signature|sig|token|x-amz-credential|x-amz-signature)$/i;
3
- function decodePathSegment(segment) {
4
- try {
5
- return decodeURIComponent(segment);
6
- }
7
- catch {
8
- return segment;
9
- }
10
- }
11
- function looksLikeCredentialValue(segment) {
12
- const value = decodePathSegment(segment);
13
- if (/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(value)) {
14
- return true;
15
- }
16
- if (/^(?:sk|pk|rk|ghp|github_pat|xox[baprs]|ya29|AIza)[-_][A-Za-z0-9_-]+$/i.test(value)) {
17
- return true;
18
- }
19
- return value.length >= 32 && /^[A-Za-z0-9._~-]+$/.test(value);
20
- }
21
- function sanitizePathname(pathname) {
22
- let redactNext = false;
23
- return pathname
24
- .split("/")
25
- .map((segment) => {
26
- if (!segment)
27
- return segment;
28
- const decoded = decodePathSegment(segment);
29
- if (redactNext) {
30
- redactNext = false;
31
- return REDACTED;
32
- }
33
- const assignment = decoded.match(/^([^=:]+)([=:])(.+)$/);
34
- if (assignment && CREDENTIAL_NAME.test(assignment[1])) {
35
- return `${assignment[1]}${assignment[2]}${REDACTED}`;
36
- }
37
- if (CREDENTIAL_NAME.test(decoded)) {
38
- redactNext = true;
39
- return segment;
40
- }
41
- return looksLikeCredentialValue(segment) ? REDACTED : segment;
42
- })
43
- .join("/");
44
- }
45
- function sanitizeQuery(search) {
46
- if (!search)
47
- return "";
48
- const redacted = Array.from(new URLSearchParams(search).keys(), (key) => {
49
- const safeKey = encodeURIComponent(key.slice(0, 100));
50
- return `${safeKey}=${REDACTED}`;
51
- });
52
- return redacted.length > 0 ? `?${redacted.join("&")}` : "";
53
- }
54
- export function sanitizeProviderApiAuditPath(path) {
55
- const raw = String(path ?? "");
56
- const withoutFragment = raw.split("#", 1)[0] ?? "";
57
- try {
58
- const url = new URL(withoutFragment);
59
- return `${url.protocol}//${url.host}${sanitizePathname(url.pathname)}${sanitizeQuery(url.search)}`;
60
- }
61
- catch {
62
- const queryIndex = withoutFragment.indexOf("?");
63
- const pathname = queryIndex >= 0 ? withoutFragment.slice(0, queryIndex) : withoutFragment;
64
- const search = queryIndex >= 0 ? withoutFragment.slice(queryIndex + 1) : "";
65
- return `${sanitizePathname(pathname)}${sanitizeQuery(search)}`;
66
- }
67
- }
68
- export function buildProviderApiAuditSummary(args) {
69
- const method = String(args.method || "GET").toUpperCase();
70
- const provider = String(args.provider ?? "");
71
- const path = sanitizeProviderApiAuditPath(args.path);
72
- return `${method} ${provider} ${path}`.slice(0, 200);
73
- }
74
- //# sourceMappingURL=provider-api-audit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-api-audit.js","sourceRoot":"","sources":["../../src/actions/provider-api-audit.ts"],"names":[],"mappings":"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","sourcesContent":["const REDACTED = \"[redacted]\";\n\nconst CREDENTIAL_NAME =\n /^(?:api[-_]?key|access[-_]?token|auth(?:orization)?|bearer|credential|password|secret|signature|sig|token|x-amz-credential|x-amz-signature)$/i;\n\nfunction decodePathSegment(segment: string): string {\n try {\n return decodeURIComponent(segment);\n } catch {\n return segment;\n }\n}\n\nfunction looksLikeCredentialValue(segment: string): boolean {\n const value = decodePathSegment(segment);\n if (/^eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$/.test(value)) {\n return true;\n }\n if (\n /^(?:sk|pk|rk|ghp|github_pat|xox[baprs]|ya29|AIza)[-_][A-Za-z0-9_-]+$/i.test(\n value,\n )\n ) {\n return true;\n }\n return value.length >= 32 && /^[A-Za-z0-9._~-]+$/.test(value);\n}\n\nfunction sanitizePathname(pathname: string): string {\n let redactNext = false;\n return pathname\n .split(\"/\")\n .map((segment) => {\n if (!segment) return segment;\n const decoded = decodePathSegment(segment);\n if (redactNext) {\n redactNext = false;\n return REDACTED;\n }\n\n const assignment = decoded.match(/^([^=:]+)([=:])(.+)$/);\n if (assignment && CREDENTIAL_NAME.test(assignment[1]!)) {\n return `${assignment[1]}${assignment[2]}${REDACTED}`;\n }\n if (CREDENTIAL_NAME.test(decoded)) {\n redactNext = true;\n return segment;\n }\n return looksLikeCredentialValue(segment) ? REDACTED : segment;\n })\n .join(\"/\");\n}\n\nfunction sanitizeQuery(search: string): string {\n if (!search) return \"\";\n const redacted = Array.from(new URLSearchParams(search).keys(), (key) => {\n const safeKey = encodeURIComponent(key.slice(0, 100));\n return `${safeKey}=${REDACTED}`;\n });\n return redacted.length > 0 ? `?${redacted.join(\"&\")}` : \"\";\n}\n\nexport function sanitizeProviderApiAuditPath(path: unknown): string {\n const raw = String(path ?? \"\");\n const withoutFragment = raw.split(\"#\", 1)[0] ?? \"\";\n\n try {\n const url = new URL(withoutFragment);\n return `${url.protocol}//${url.host}${sanitizePathname(url.pathname)}${sanitizeQuery(url.search)}`;\n } catch {\n const queryIndex = withoutFragment.indexOf(\"?\");\n const pathname =\n queryIndex >= 0 ? withoutFragment.slice(0, queryIndex) : withoutFragment;\n const search = queryIndex >= 0 ? withoutFragment.slice(queryIndex + 1) : \"\";\n return `${sanitizePathname(pathname)}${sanitizeQuery(search)}`;\n }\n}\n\nexport function buildProviderApiAuditSummary(args: {\n method?: unknown;\n provider?: unknown;\n path?: unknown;\n}): string {\n const method = String(args.method || \"GET\").toUpperCase();\n const provider = String(args.provider ?? \"\");\n const path = sanitizeProviderApiAuditPath(args.path);\n return `${method} ${provider} ${path}`.slice(0, 200);\n}\n"]}
@@ -1,88 +0,0 @@
1
- const REDACTED = "[redacted]";
2
-
3
- const CREDENTIAL_NAME =
4
- /^(?:api[-_]?key|access[-_]?token|auth(?:orization)?|bearer|credential|password|secret|signature|sig|token|x-amz-credential|x-amz-signature)$/i;
5
-
6
- function decodePathSegment(segment: string): string {
7
- try {
8
- return decodeURIComponent(segment);
9
- } catch {
10
- return segment;
11
- }
12
- }
13
-
14
- function looksLikeCredentialValue(segment: string): boolean {
15
- const value = decodePathSegment(segment);
16
- if (/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(value)) {
17
- return true;
18
- }
19
- if (
20
- /^(?:sk|pk|rk|ghp|github_pat|xox[baprs]|ya29|AIza)[-_][A-Za-z0-9_-]+$/i.test(
21
- value,
22
- )
23
- ) {
24
- return true;
25
- }
26
- return value.length >= 32 && /^[A-Za-z0-9._~-]+$/.test(value);
27
- }
28
-
29
- function sanitizePathname(pathname: string): string {
30
- let redactNext = false;
31
- return pathname
32
- .split("/")
33
- .map((segment) => {
34
- if (!segment) return segment;
35
- const decoded = decodePathSegment(segment);
36
- if (redactNext) {
37
- redactNext = false;
38
- return REDACTED;
39
- }
40
-
41
- const assignment = decoded.match(/^([^=:]+)([=:])(.+)$/);
42
- if (assignment && CREDENTIAL_NAME.test(assignment[1]!)) {
43
- return `${assignment[1]}${assignment[2]}${REDACTED}`;
44
- }
45
- if (CREDENTIAL_NAME.test(decoded)) {
46
- redactNext = true;
47
- return segment;
48
- }
49
- return looksLikeCredentialValue(segment) ? REDACTED : segment;
50
- })
51
- .join("/");
52
- }
53
-
54
- function sanitizeQuery(search: string): string {
55
- if (!search) return "";
56
- const redacted = Array.from(new URLSearchParams(search).keys(), (key) => {
57
- const safeKey = encodeURIComponent(key.slice(0, 100));
58
- return `${safeKey}=${REDACTED}`;
59
- });
60
- return redacted.length > 0 ? `?${redacted.join("&")}` : "";
61
- }
62
-
63
- export function sanitizeProviderApiAuditPath(path: unknown): string {
64
- const raw = String(path ?? "");
65
- const withoutFragment = raw.split("#", 1)[0] ?? "";
66
-
67
- try {
68
- const url = new URL(withoutFragment);
69
- return `${url.protocol}//${url.host}${sanitizePathname(url.pathname)}${sanitizeQuery(url.search)}`;
70
- } catch {
71
- const queryIndex = withoutFragment.indexOf("?");
72
- const pathname =
73
- queryIndex >= 0 ? withoutFragment.slice(0, queryIndex) : withoutFragment;
74
- const search = queryIndex >= 0 ? withoutFragment.slice(queryIndex + 1) : "";
75
- return `${sanitizePathname(pathname)}${sanitizeQuery(search)}`;
76
- }
77
- }
78
-
79
- export function buildProviderApiAuditSummary(args: {
80
- method?: unknown;
81
- provider?: unknown;
82
- path?: unknown;
83
- }): string {
84
- const method = String(args.method || "GET").toUpperCase();
85
- const provider = String(args.provider ?? "");
86
- const path = sanitizeProviderApiAuditPath(args.path);
87
- return `${method} ${provider} ${path}`.slice(0, 200);
88
- }