@osdk/widget.vite-plugin 3.5.0-beta.9 → 3.5.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 (78) hide show
  1. package/CHANGELOG.md +182 -0
  2. package/build/esm/build-plugin/FoundryWidgetBuildPlugin.js +2 -2
  3. package/build/esm/build-plugin/FoundryWidgetBuildPlugin.js.map +1 -1
  4. package/build/esm/build-plugin/buildWidgetSetManifest.js +5 -4
  5. package/build/esm/build-plugin/buildWidgetSetManifest.js.map +1 -1
  6. package/build/esm/index.js +2 -2
  7. package/build/esm/index.js.map +1 -1
  8. package/build/types/build-plugin/FoundryWidgetBuildPlugin.d.ts +2 -1
  9. package/build/types/build-plugin/FoundryWidgetBuildPlugin.d.ts.map +1 -1
  10. package/build/types/build-plugin/buildWidgetSetManifest.d.ts +2 -1
  11. package/build/types/build-plugin/buildWidgetSetManifest.d.ts.map +1 -1
  12. package/build/types/index.d.ts +13 -1
  13. package/build/types/index.d.ts.map +1 -1
  14. package/package.json +6 -6
  15. package/build/esm/build-plugin/__tests__/buildWidgetSetManifest.test.js +0 -186
  16. package/build/esm/build-plugin/__tests__/buildWidgetSetManifest.test.js.map +0 -1
  17. package/build/esm/build-plugin/__tests__/extractBuildOutputs.test.js +0 -133
  18. package/build/esm/build-plugin/__tests__/extractBuildOutputs.test.js.map +0 -1
  19. package/build/esm/build-plugin/__tests__/getWidgetBuildOutputs.test.js +0 -153
  20. package/build/esm/build-plugin/__tests__/getWidgetBuildOutputs.test.js.map +0 -1
  21. package/build/esm/build-plugin/__tests__/getWidgetSetInputSpec.test.js +0 -96
  22. package/build/esm/build-plugin/__tests__/getWidgetSetInputSpec.test.js.map +0 -1
  23. package/build/esm/build-plugin/__tests__/isConfigFile.test.js +0 -26
  24. package/build/esm/build-plugin/__tests__/isConfigFile.test.js.map +0 -1
  25. package/build/esm/build-plugin/__tests__/validateWidgetSet.test.js +0 -44
  26. package/build/esm/build-plugin/__tests__/validateWidgetSet.test.js.map +0 -1
  27. package/build/esm/common/__tests__/extractWidgetConfig.test.js +0 -95
  28. package/build/esm/common/__tests__/extractWidgetConfig.test.js.map +0 -1
  29. package/build/esm/common/__tests__/getInputHtmlEntrypoints.test.js +0 -38
  30. package/build/esm/common/__tests__/getInputHtmlEntrypoints.test.js.map +0 -1
  31. package/build/esm/common/__tests__/standardizePathAndFileExtension.test.js +0 -77
  32. package/build/esm/common/__tests__/standardizePathAndFileExtension.test.js.map +0 -1
  33. package/build/esm/common/__tests__/validateWidgetConfig.test.js +0 -151
  34. package/build/esm/common/__tests__/validateWidgetConfig.test.js.map +0 -1
  35. package/build/esm/common/__tests__/visitNpmPackages.test.js +0 -74
  36. package/build/esm/common/__tests__/visitNpmPackages.test.js.map +0 -1
  37. package/build/esm/dev-plugin/__tests__/codeWorkspacesMode.test.js +0 -87
  38. package/build/esm/dev-plugin/__tests__/codeWorkspacesMode.test.js.map +0 -1
  39. package/build/esm/dev-plugin/__tests__/extractInjectedScripts.test.js +0 -34
  40. package/build/esm/dev-plugin/__tests__/extractInjectedScripts.test.js.map +0 -1
  41. package/build/esm/dev-plugin/__tests__/getBaseHref.test.js +0 -48
  42. package/build/esm/dev-plugin/__tests__/getBaseHref.test.js.map +0 -1
  43. package/build/esm/dev-plugin/__tests__/getWidgetIdOverrideMap.test.js +0 -71
  44. package/build/esm/dev-plugin/__tests__/getWidgetIdOverrideMap.test.js.map +0 -1
  45. package/build/esm/dev-plugin/__tests__/validateDevEnvironment.test.js +0 -66
  46. package/build/esm/dev-plugin/__tests__/validateDevEnvironment.test.js.map +0 -1
  47. package/build/types/build-plugin/__tests__/buildWidgetSetManifest.test.d.ts +0 -1
  48. package/build/types/build-plugin/__tests__/buildWidgetSetManifest.test.d.ts.map +0 -1
  49. package/build/types/build-plugin/__tests__/extractBuildOutputs.test.d.ts +0 -1
  50. package/build/types/build-plugin/__tests__/extractBuildOutputs.test.d.ts.map +0 -1
  51. package/build/types/build-plugin/__tests__/getWidgetBuildOutputs.test.d.ts +0 -1
  52. package/build/types/build-plugin/__tests__/getWidgetBuildOutputs.test.d.ts.map +0 -1
  53. package/build/types/build-plugin/__tests__/getWidgetSetInputSpec.test.d.ts +0 -1
  54. package/build/types/build-plugin/__tests__/getWidgetSetInputSpec.test.d.ts.map +0 -1
  55. package/build/types/build-plugin/__tests__/isConfigFile.test.d.ts +0 -1
  56. package/build/types/build-plugin/__tests__/isConfigFile.test.d.ts.map +0 -1
  57. package/build/types/build-plugin/__tests__/validateWidgetSet.test.d.ts +0 -1
  58. package/build/types/build-plugin/__tests__/validateWidgetSet.test.d.ts.map +0 -1
  59. package/build/types/common/__tests__/extractWidgetConfig.test.d.ts +0 -1
  60. package/build/types/common/__tests__/extractWidgetConfig.test.d.ts.map +0 -1
  61. package/build/types/common/__tests__/getInputHtmlEntrypoints.test.d.ts +0 -1
  62. package/build/types/common/__tests__/getInputHtmlEntrypoints.test.d.ts.map +0 -1
  63. package/build/types/common/__tests__/standardizePathAndFileExtension.test.d.ts +0 -1
  64. package/build/types/common/__tests__/standardizePathAndFileExtension.test.d.ts.map +0 -1
  65. package/build/types/common/__tests__/validateWidgetConfig.test.d.ts +0 -1
  66. package/build/types/common/__tests__/validateWidgetConfig.test.d.ts.map +0 -1
  67. package/build/types/common/__tests__/visitNpmPackages.test.d.ts +0 -1
  68. package/build/types/common/__tests__/visitNpmPackages.test.d.ts.map +0 -1
  69. package/build/types/dev-plugin/__tests__/codeWorkspacesMode.test.d.ts +0 -1
  70. package/build/types/dev-plugin/__tests__/codeWorkspacesMode.test.d.ts.map +0 -1
  71. package/build/types/dev-plugin/__tests__/extractInjectedScripts.test.d.ts +0 -1
  72. package/build/types/dev-plugin/__tests__/extractInjectedScripts.test.d.ts.map +0 -1
  73. package/build/types/dev-plugin/__tests__/getBaseHref.test.d.ts +0 -1
  74. package/build/types/dev-plugin/__tests__/getBaseHref.test.d.ts.map +0 -1
  75. package/build/types/dev-plugin/__tests__/getWidgetIdOverrideMap.test.d.ts +0 -1
  76. package/build/types/dev-plugin/__tests__/getWidgetIdOverrideMap.test.d.ts.map +0 -1
  77. package/build/types/dev-plugin/__tests__/validateDevEnvironment.test.d.ts +0 -1
  78. package/build/types/dev-plugin/__tests__/validateDevEnvironment.test.d.ts.map +0 -1
@@ -1,38 +0,0 @@
1
- /*
2
- * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { expect, test } from "vitest";
18
- import { getInputHtmlEntrypoints } from "../getInputHtmlEntrypoints.js";
19
- function mockOptions(input) {
20
- return {
21
- input
22
- };
23
- }
24
- test("getInputHtmlEntrypoints with array input", () => {
25
- const options = mockOptions(["one.html", "two.html", "three.html"]);
26
- const result = getInputHtmlEntrypoints(options);
27
- expect(result).toEqual(["one.html", "two.html", "three.html"]);
28
- });
29
- test("getInputHtmlEntrypoints with object input", () => {
30
- const options = mockOptions({
31
- main: "one.html",
32
- unrelated: "two.html",
33
- three: "three.html"
34
- });
35
- const result = getInputHtmlEntrypoints(options);
36
- expect(result).toEqual(["one.html", "two.html", "three.html"]);
37
- });
38
- //# sourceMappingURL=getInputHtmlEntrypoints.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInputHtmlEntrypoints.test.js","names":["expect","test","getInputHtmlEntrypoints","mockOptions","input","options","result","toEqual","main","unrelated","three"],"sources":["getInputHtmlEntrypoints.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Rollup } from \"vite\";\nimport { expect, test } from \"vitest\";\nimport { getInputHtmlEntrypoints } from \"../getInputHtmlEntrypoints.js\";\n\nfunction mockOptions(\n input: Rollup.NormalizedInputOptions[\"input\"],\n) {\n return { input } as Rollup.NormalizedInputOptions;\n}\n\ntest(\"getInputHtmlEntrypoints with array input\", () => {\n const options = mockOptions([\"one.html\", \"two.html\", \"three.html\"]);\n const result = getInputHtmlEntrypoints(options);\n expect(result).toEqual([\"one.html\", \"two.html\", \"three.html\"]);\n});\n\ntest(\"getInputHtmlEntrypoints with object input\", () => {\n const options = mockOptions({\n main: \"one.html\",\n unrelated: \"two.html\",\n three: \"three.html\",\n });\n\n const result = getInputHtmlEntrypoints(options);\n expect(result).toEqual([\"one.html\", \"two.html\", \"three.html\"]);\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,MAAM,EAAEC,IAAI,QAAQ,QAAQ;AACrC,SAASC,uBAAuB,QAAQ,+BAA+B;AAEvE,SAASC,WAAWA,CAClBC,KAA6C,EAC7C;EACA,OAAO;IAAEA;EAAM,CAAC;AAClB;AAEAH,IAAI,CAAC,0CAA0C,EAAE,MAAM;EACrD,MAAMI,OAAO,GAAGF,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;EACnE,MAAMG,MAAM,GAAGJ,uBAAuB,CAACG,OAAO,CAAC;EAC/CL,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAChE,CAAC,CAAC;AAEFN,IAAI,CAAC,2CAA2C,EAAE,MAAM;EACtD,MAAMI,OAAO,GAAGF,WAAW,CAAC;IAC1BK,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAE,UAAU;IACrBC,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,MAAMJ,MAAM,GAAGJ,uBAAuB,CAACG,OAAO,CAAC;EAC/CL,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAChE,CAAC,CAAC","ignoreList":[]}
@@ -1,77 +0,0 @@
1
- /*
2
- * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { describe, expect, it } from "vitest";
18
- import { standardizePathAndFileExtension } from "../standardizePathAndFileExtension.js";
19
- describe("standardizePathAndFileExtension", () => {
20
- describe("file extension standardization", () => {
21
- it("should replace .ts extension with .js", () => {
22
- expect(standardizePathAndFileExtension("/path/to/file.ts")).toBe("/path/to/file.js");
23
- });
24
- it("should replace .tsx extension with .js", () => {
25
- expect(standardizePathAndFileExtension("/path/to/component.tsx")).toBe("/path/to/component.js");
26
- });
27
- it("should replace .jsx extension with .js", () => {
28
- expect(standardizePathAndFileExtension("/path/to/component.jsx")).toBe("/path/to/component.js");
29
- });
30
- it("should keep .js extension as is", () => {
31
- expect(standardizePathAndFileExtension("/path/to/file.js")).toBe("/path/to/file.js");
32
- });
33
- it("should append .js to config files", () => {
34
- expect(standardizePathAndFileExtension("/path/to/widget.config")).toBe("/path/to/widget.config.js");
35
- });
36
- it("should handle files without extensions", () => {
37
- expect(standardizePathAndFileExtension("/path/to/file")).toBe("/path/to/file");
38
- });
39
- });
40
- describe("path normalization", () => {
41
- it("should normalize Windows paths with backslashes to forward slashes", () => {
42
- expect(standardizePathAndFileExtension("C:\\Users\\project\\src\\file.ts")).toBe("C:/Users/project/src/file.js");
43
- });
44
- it("should normalize Windows paths with mixed separators", () => {
45
- expect(standardizePathAndFileExtension("C:\\Users/project\\src/file.tsx")).toBe("C:/Users/project/src/file.js");
46
- });
47
- it("should preserve paths that already use forward slashes", () => {
48
- expect(standardizePathAndFileExtension("/Users/project/src/file.ts")).toBe("/Users/project/src/file.js");
49
- });
50
- it("should handle Windows config file paths", () => {
51
- expect(standardizePathAndFileExtension("D:\\workspace\\widgets\\my-widget.config")).toBe("D:/workspace/widgets/my-widget.config.js");
52
- });
53
- it("should handle Windows paths without file extensions", () => {
54
- expect(standardizePathAndFileExtension("C:\\Users\\project\\README")).toBe("C:/Users/project/README");
55
- });
56
- });
57
- describe("edge cases", () => {
58
- it("should handle empty string", () => {
59
- expect(standardizePathAndFileExtension("")).toBe("");
60
- });
61
- it("should handle paths with multiple dots", () => {
62
- expect(standardizePathAndFileExtension("/path/to/file.test.ts")).toBe("/path/to/file.test.js");
63
- });
64
- it("should handle Windows paths with multiple dots", () => {
65
- expect(standardizePathAndFileExtension("C:\\path\\to\\file.test.tsx")).toBe("C:/path/to/file.test.js");
66
- });
67
- it("should handle virtual paths with @fs prefix", () => {
68
- expect(standardizePathAndFileExtension("/@fs/C:\\Users\\project\\src\\file.ts")).toBe("/@fs/C:/Users/project/src/file.js");
69
- });
70
- it("should handle paths with /src/ directory for Windows", () => {
71
- const result = standardizePathAndFileExtension("C:\\projects\\my-app\\src\\components\\Widget.tsx");
72
- expect(result).toBe("C:/projects/my-app/src/components/Widget.js");
73
- expect(result.includes("/src/")).toBe(true);
74
- });
75
- });
76
- });
77
- //# sourceMappingURL=standardizePathAndFileExtension.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standardizePathAndFileExtension.test.js","names":["describe","expect","it","standardizePathAndFileExtension","toBe","result","includes"],"sources":["standardizePathAndFileExtension.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { describe, expect, it } from \"vitest\";\nimport { standardizePathAndFileExtension } from \"../standardizePathAndFileExtension.js\";\n\ndescribe(\"standardizePathAndFileExtension\", () => {\n describe(\"file extension standardization\", () => {\n it(\"should replace .ts extension with .js\", () => {\n expect(standardizePathAndFileExtension(\"/path/to/file.ts\")).toBe(\n \"/path/to/file.js\",\n );\n });\n\n it(\"should replace .tsx extension with .js\", () => {\n expect(standardizePathAndFileExtension(\"/path/to/component.tsx\")).toBe(\n \"/path/to/component.js\",\n );\n });\n\n it(\"should replace .jsx extension with .js\", () => {\n expect(standardizePathAndFileExtension(\"/path/to/component.jsx\")).toBe(\n \"/path/to/component.js\",\n );\n });\n\n it(\"should keep .js extension as is\", () => {\n expect(standardizePathAndFileExtension(\"/path/to/file.js\")).toBe(\n \"/path/to/file.js\",\n );\n });\n\n it(\"should append .js to config files\", () => {\n expect(standardizePathAndFileExtension(\"/path/to/widget.config\")).toBe(\n \"/path/to/widget.config.js\",\n );\n });\n\n it(\"should handle files without extensions\", () => {\n expect(standardizePathAndFileExtension(\"/path/to/file\")).toBe(\n \"/path/to/file\",\n );\n });\n });\n\n describe(\"path normalization\", () => {\n it(\"should normalize Windows paths with backslashes to forward slashes\", () => {\n expect(\n standardizePathAndFileExtension(\"C:\\\\Users\\\\project\\\\src\\\\file.ts\"),\n ).toBe(\"C:/Users/project/src/file.js\");\n });\n\n it(\"should normalize Windows paths with mixed separators\", () => {\n expect(standardizePathAndFileExtension(\"C:\\\\Users/project\\\\src/file.tsx\"))\n .toBe(\"C:/Users/project/src/file.js\");\n });\n\n it(\"should preserve paths that already use forward slashes\", () => {\n expect(standardizePathAndFileExtension(\"/Users/project/src/file.ts\"))\n .toBe(\"/Users/project/src/file.js\");\n });\n\n it(\"should handle Windows config file paths\", () => {\n expect(\n standardizePathAndFileExtension(\n \"D:\\\\workspace\\\\widgets\\\\my-widget.config\",\n ),\n ).toBe(\"D:/workspace/widgets/my-widget.config.js\");\n });\n\n it(\"should handle Windows paths without file extensions\", () => {\n expect(standardizePathAndFileExtension(\"C:\\\\Users\\\\project\\\\README\"))\n .toBe(\"C:/Users/project/README\");\n });\n });\n\n describe(\"edge cases\", () => {\n it(\"should handle empty string\", () => {\n expect(standardizePathAndFileExtension(\"\")).toBe(\"\");\n });\n\n it(\"should handle paths with multiple dots\", () => {\n expect(standardizePathAndFileExtension(\"/path/to/file.test.ts\")).toBe(\n \"/path/to/file.test.js\",\n );\n });\n\n it(\"should handle Windows paths with multiple dots\", () => {\n expect(standardizePathAndFileExtension(\"C:\\\\path\\\\to\\\\file.test.tsx\"))\n .toBe(\"C:/path/to/file.test.js\");\n });\n\n it(\"should handle virtual paths with @fs prefix\", () => {\n expect(\n standardizePathAndFileExtension(\n \"/@fs/C:\\\\Users\\\\project\\\\src\\\\file.ts\",\n ),\n ).toBe(\"/@fs/C:/Users/project/src/file.js\");\n });\n\n it(\"should handle paths with /src/ directory for Windows\", () => {\n const windowsPath = \"C:\\\\projects\\\\my-app\\\\src\\\\components\\\\Widget.tsx\";\n const result = standardizePathAndFileExtension(windowsPath);\n expect(result).toBe(\"C:/projects/my-app/src/components/Widget.js\");\n expect(result.includes(\"/src/\")).toBe(true);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,151 +0,0 @@
1
- /*
2
- * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { describe, expect, test } from "vitest";
18
- import { validateWidgetConfig } from "../validateWidgetConfig.js";
19
- describe("validateWidgetConfig", () => {
20
- test("accepts valid widget configuration", () => {
21
- const validConfig = getValidConfig();
22
- expect(() => validateWidgetConfig(validConfig)).not.toThrow();
23
- });
24
- test("throws for widget id that exceeds max length", () => {
25
- const invalidConfig = getValidConfig();
26
- invalidConfig.id = "a".repeat(101);
27
- expect(() => validateWidgetConfig(invalidConfig)).toThrow("Widget id length can be at most 100 characters");
28
- });
29
- test("throws for widget id that is not camelCase", () => {
30
- const testCases = [{
31
- id: "TestWidget",
32
- message: "does not match allowed pattern"
33
- }, {
34
- id: "test-widget",
35
- message: "does not match allowed pattern"
36
- }, {
37
- id: "test_widget",
38
- message: "does not match allowed pattern"
39
- }, {
40
- id: "1testWidget",
41
- message: "does not match allowed pattern"
42
- }];
43
- for (const {
44
- id,
45
- message
46
- } of testCases) {
47
- const invalidConfig = getValidConfig();
48
- invalidConfig.id = id;
49
- expect(() => validateWidgetConfig(invalidConfig)).toThrow(message);
50
- }
51
- });
52
- test("throws for widget name that exceeds max length", () => {
53
- const invalidConfig = getValidConfig();
54
- invalidConfig.name = "A".repeat(101);
55
- expect(() => validateWidgetConfig(invalidConfig)).toThrow("Widget name length can be at most 100 characters");
56
- });
57
- test("throws for widget description that exceeds max length", () => {
58
- const invalidConfig = getValidConfig();
59
- invalidConfig.description = "A".repeat(251);
60
- expect(() => validateWidgetConfig(invalidConfig)).toThrow("Widget description length can be at most 250 characters");
61
- });
62
- test("accepts undefined widget description", () => {
63
- const validConfig = getValidConfig();
64
- delete validConfig.description;
65
- expect(() => validateWidgetConfig(validConfig)).not.toThrow();
66
- });
67
- test("throws for parameter id that is not camelCase", () => {
68
- const invalidConfig = getValidConfig();
69
- invalidConfig.parameters = {
70
- "Invalid-Param": {
71
- displayName: "Invalid Parameter",
72
- type: "string"
73
- }
74
- };
75
- expect(() => validateWidgetConfig(invalidConfig)).toThrow("Parameter id \"Invalid-Param\" does not match allowed pattern (must be camelCase)");
76
- });
77
- test("throws for parameter id that exceeds max length", () => {
78
- const invalidConfig = getValidConfig();
79
- const longParamId = "param" + "a".repeat(96); // 101 chars total
80
- invalidConfig.parameters = {
81
- [longParamId]: {
82
- displayName: "Long Parameter",
83
- type: "string"
84
- }
85
- };
86
- expect(() => validateWidgetConfig(invalidConfig)).toThrow("Parameter id length can be at most 100 characters");
87
- });
88
- test("accepts valid object set parameter using object types", () => {
89
- const validConfig = getValidConfig();
90
- validConfig.parameters.myObjectSet = {
91
- type: "objectSet",
92
- displayName: "My Object Set",
93
- allowedType: {
94
- type: "object",
95
- apiName: "employee",
96
- internalDoNotUseMetadata: {
97
- rid: "ri.object-type.employee"
98
- }
99
- }
100
- };
101
- expect(() => validateWidgetConfig(validConfig)).not.toThrow();
102
- });
103
- test("accepts valid object set parameter using interfaces", () => {
104
- const validConfig = getValidConfig();
105
- validConfig.parameters.myInterfaceSet = {
106
- type: "objectSet",
107
- displayName: "My Object Set",
108
- allowedType: {
109
- type: "interface",
110
- apiName: "MyInterface",
111
- internalDoNotUseMetadata: {
112
- rid: "ri.ontology.main.interface.my-interface"
113
- }
114
- }
115
- };
116
- expect(() => validateWidgetConfig(validConfig)).not.toThrow();
117
- });
118
- test("throws for invalid object set parameter", () => {
119
- const invalidConfig = getValidConfig();
120
- invalidConfig.parameters.myObjectSet = {
121
- type: "objectSet",
122
- displayName: "My Object Set",
123
- allowedType: {
124
- type: "object",
125
- apiName: "employee"
126
- }
127
- };
128
- expect(() => validateWidgetConfig(invalidConfig)).toThrow("ObjectSet parameter \"myObjectSet\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.6.2");
129
- });
130
- });
131
- function getValidConfig() {
132
- return {
133
- id: "testWidget",
134
- name: "Test Widget",
135
- description: "A test widget",
136
- type: "workshop",
137
- parameters: {
138
- paramOne: {
139
- displayName: "Parameter One",
140
- type: "string"
141
- }
142
- },
143
- events: {
144
- updateParameters: {
145
- displayName: "Update Parameters",
146
- parameterUpdateIds: ["paramOne"]
147
- }
148
- }
149
- };
150
- }
151
- //# sourceMappingURL=validateWidgetConfig.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateWidgetConfig.test.js","names":["describe","expect","test","validateWidgetConfig","validConfig","getValidConfig","not","toThrow","invalidConfig","id","repeat","testCases","message","name","description","parameters","displayName","type","longParamId","myObjectSet","allowedType","apiName","internalDoNotUseMetadata","rid","myInterfaceSet","paramOne","events","updateParameters","parameterUpdateIds"],"sources":["validateWidgetConfig.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterConfig, WidgetConfig } from \"@osdk/widget.api\";\nimport { describe, expect, test } from \"vitest\";\nimport { validateWidgetConfig } from \"../validateWidgetConfig.js\";\n\ndescribe(\"validateWidgetConfig\", () => {\n test(\"accepts valid widget configuration\", () => {\n const validConfig = getValidConfig();\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for widget id that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.id = \"a\".repeat(101);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget id length can be at most 100 characters\",\n );\n });\n\n test(\"throws for widget id that is not camelCase\", () => {\n const testCases = [\n { id: \"TestWidget\", message: \"does not match allowed pattern\" },\n { id: \"test-widget\", message: \"does not match allowed pattern\" },\n { id: \"test_widget\", message: \"does not match allowed pattern\" },\n { id: \"1testWidget\", message: \"does not match allowed pattern\" },\n ];\n\n for (const { id, message } of testCases) {\n const invalidConfig = getValidConfig();\n invalidConfig.id = id;\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(message);\n }\n });\n\n test(\"throws for widget name that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.name = \"A\".repeat(101);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget name length can be at most 100 characters\",\n );\n });\n\n test(\"throws for widget description that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.description = \"A\".repeat(251);\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Widget description length can be at most 250 characters\",\n );\n });\n\n test(\"accepts undefined widget description\", () => {\n const validConfig = getValidConfig();\n delete validConfig.description;\n\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for parameter id that is not camelCase\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.parameters = {\n \"Invalid-Param\": {\n displayName: \"Invalid Parameter\",\n type: \"string\",\n },\n };\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Parameter id \\\"Invalid-Param\\\" does not match allowed pattern (must be camelCase)\",\n );\n });\n\n test(\"throws for parameter id that exceeds max length\", () => {\n const invalidConfig = getValidConfig();\n const longParamId = \"param\" + \"a\".repeat(96); // 101 chars total\n invalidConfig.parameters = {\n [longParamId]: {\n displayName: \"Long Parameter\",\n type: \"string\",\n },\n };\n\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"Parameter id length can be at most 100 characters\",\n );\n });\n\n test(\"accepts valid object set parameter using object types\", () => {\n const validConfig = getValidConfig();\n validConfig.parameters.myObjectSet = {\n type: \"objectSet\",\n displayName: \"My Object Set\",\n allowedType: {\n type: \"object\",\n apiName: \"employee\",\n internalDoNotUseMetadata: {\n rid: \"ri.object-type.employee\",\n },\n },\n };\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"accepts valid object set parameter using interfaces\", () => {\n const validConfig = getValidConfig();\n validConfig.parameters.myInterfaceSet = {\n type: \"objectSet\",\n displayName: \"My Object Set\",\n allowedType: {\n type: \"interface\",\n apiName: \"MyInterface\",\n internalDoNotUseMetadata: {\n rid: \"ri.ontology.main.interface.my-interface\",\n },\n },\n };\n expect(() => validateWidgetConfig(validConfig)).not.toThrow();\n });\n\n test(\"throws for invalid object set parameter\", () => {\n const invalidConfig = getValidConfig();\n invalidConfig.parameters.myObjectSet = {\n type: \"objectSet\",\n displayName: \"My Object Set\",\n allowedType: {\n type: \"object\",\n apiName: \"employee\",\n },\n };\n expect(() => validateWidgetConfig(invalidConfig)).toThrow(\n \"ObjectSet parameter \\\"myObjectSet\\\" must have a valid rid in its metadata, make sure your OSDK was generated with a generator version >=2.6.2\",\n );\n });\n});\n\nfunction getValidConfig(): WidgetConfig<ParameterConfig> {\n return {\n id: \"testWidget\",\n name: \"Test Widget\",\n description: \"A test widget\",\n type: \"workshop\",\n parameters: {\n paramOne: {\n displayName: \"Parameter One\",\n type: \"string\",\n },\n },\n events: {\n updateParameters: {\n displayName: \"Update Parameters\",\n parameterUpdateIds: [\"paramOne\"],\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,74 +0,0 @@
1
- /*
2
- * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { readFile } from "fs/promises";
18
- import resolvePackagePath from "resolve-package-path";
19
- import { expect, test, vi } from "vitest";
20
- import { visitNpmPackages } from "../visitNpmPackages.js";
21
- vi.mock("fs/promises");
22
- vi.mock("resolve-package-path");
23
- test("visitNpmPackages", async () => {
24
- const packageJson1 = {
25
- name: "package1",
26
- version: "0.1.0",
27
- dependencies: {
28
- "package2": "0.2.0",
29
- "package3": "0.3.0"
30
- }
31
- };
32
- const packageJson2 = {
33
- name: "package2",
34
- version: "0.2.0",
35
- dependencies: {
36
- "package3": "0.3.0"
37
- }
38
- };
39
- const packageJson3 = {
40
- name: "package3",
41
- version: "0.3.0"
42
- };
43
- const packageJsonPaths = {
44
- [packageJson1.name]: "/path/to/package.json",
45
- [packageJson2.name]: "/path/to/node_modules/package2/package.json",
46
- [packageJson3.name]: "/path/to/node_modules/package3/package.json"
47
- };
48
- const packageJsons = {
49
- [packageJsonPaths[packageJson1.name]]: packageJson1,
50
- [packageJsonPaths[packageJson2.name]]: packageJson2,
51
- [packageJsonPaths[packageJson3.name]]: packageJson3
52
- };
53
- vi.mocked(resolvePackagePath).mockImplementation(target => {
54
- const path = packageJsonPaths[target];
55
- if (path == null) {
56
- throw new Error(`Unexpected target: ${target}`);
57
- }
58
- return path;
59
- });
60
- vi.mocked(readFile).mockImplementation(path => {
61
- const packageJson = packageJsons[path.toString()];
62
- if (packageJson == null) {
63
- throw new Error(`Unexpected path: ${path.toString()}`);
64
- }
65
- return Promise.resolve(JSON.stringify(packageJson));
66
- });
67
- const onVisit = vi.fn();
68
- await visitNpmPackages("/path/to/package.json", onVisit);
69
- expect(onVisit).toHaveBeenCalledTimes(3);
70
- expect(onVisit).toHaveBeenNthCalledWith(1, "/path/to/package.json", packageJson1);
71
- expect(onVisit).toHaveBeenNthCalledWith(2, "/path/to/node_modules/package2/package.json", packageJson2);
72
- expect(onVisit).toHaveBeenNthCalledWith(3, "/path/to/node_modules/package3/package.json", packageJson3);
73
- });
74
- //# sourceMappingURL=visitNpmPackages.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"visitNpmPackages.test.js","names":["readFile","resolvePackagePath","expect","test","vi","visitNpmPackages","mock","packageJson1","name","version","dependencies","packageJson2","packageJson3","packageJsonPaths","packageJsons","mocked","mockImplementation","target","path","Error","packageJson","toString","Promise","resolve","JSON","stringify","onVisit","fn","toHaveBeenCalledTimes","toHaveBeenNthCalledWith"],"sources":["visitNpmPackages.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readFile } from \"fs/promises\";\nimport resolvePackagePath from \"resolve-package-path\";\nimport { expect, test, vi } from \"vitest\";\nimport type { PackageJson } from \"../../common/PackageJson.js\";\nimport { visitNpmPackages } from \"../visitNpmPackages.js\";\n\nvi.mock(\"fs/promises\");\nvi.mock(\"resolve-package-path\");\n\ntest(\"visitNpmPackages\", async () => {\n const packageJson1: PackageJson = {\n name: \"package1\",\n version: \"0.1.0\",\n dependencies: {\n \"package2\": \"0.2.0\",\n \"package3\": \"0.3.0\",\n },\n };\n const packageJson2: PackageJson = {\n name: \"package2\",\n version: \"0.2.0\",\n dependencies: {\n \"package3\": \"0.3.0\",\n },\n };\n const packageJson3: PackageJson = {\n name: \"package3\",\n version: \"0.3.0\",\n };\n\n const packageJsonPaths: Record<string, string> = {\n [packageJson1.name]: \"/path/to/package.json\",\n [packageJson2.name]: \"/path/to/node_modules/package2/package.json\",\n [packageJson3.name]: \"/path/to/node_modules/package3/package.json\",\n } as const;\n const packageJsons: Record<typeof packageJsonPaths[string], PackageJson> = {\n [packageJsonPaths[packageJson1.name]]: packageJson1,\n [packageJsonPaths[packageJson2.name]]: packageJson2,\n [packageJsonPaths[packageJson3.name]]: packageJson3,\n } as const;\n\n vi.mocked(resolvePackagePath).mockImplementation((target) => {\n const path = packageJsonPaths[target];\n if (path == null) {\n throw new Error(`Unexpected target: ${target}`);\n }\n return path;\n });\n vi.mocked(readFile).mockImplementation((path) => {\n const packageJson = packageJsons[path.toString()];\n if (packageJson == null) {\n throw new Error(`Unexpected path: ${path.toString()}`);\n }\n return Promise.resolve(JSON.stringify(packageJson));\n });\n\n const onVisit = vi.fn();\n await visitNpmPackages(\"/path/to/package.json\", onVisit);\n\n expect(onVisit).toHaveBeenCalledTimes(3);\n expect(onVisit).toHaveBeenNthCalledWith(\n 1,\n \"/path/to/package.json\",\n packageJson1,\n );\n expect(onVisit).toHaveBeenNthCalledWith(\n 2,\n \"/path/to/node_modules/package2/package.json\",\n packageJson2,\n );\n expect(onVisit).toHaveBeenNthCalledWith(\n 3,\n \"/path/to/node_modules/package3/package.json\",\n packageJson3,\n );\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,aAAa;AACtC,OAAOC,kBAAkB,MAAM,sBAAsB;AACrD,SAASC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AAEzC,SAASC,gBAAgB,QAAQ,wBAAwB;AAEzDD,EAAE,CAACE,IAAI,CAAC,aAAa,CAAC;AACtBF,EAAE,CAACE,IAAI,CAAC,sBAAsB,CAAC;AAE/BH,IAAI,CAAC,kBAAkB,EAAE,YAAY;EACnC,MAAMI,YAAyB,GAAG;IAChCC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE;MACZ,UAAU,EAAE,OAAO;MACnB,UAAU,EAAE;IACd;EACF,CAAC;EACD,MAAMC,YAAyB,GAAG;IAChCH,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE;MACZ,UAAU,EAAE;IACd;EACF,CAAC;EACD,MAAME,YAAyB,GAAG;IAChCJ,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACX,CAAC;EAED,MAAMI,gBAAwC,GAAG;IAC/C,CAACN,YAAY,CAACC,IAAI,GAAG,uBAAuB;IAC5C,CAACG,YAAY,CAACH,IAAI,GAAG,6CAA6C;IAClE,CAACI,YAAY,CAACJ,IAAI,GAAG;EACvB,CAAU;EACV,MAAMM,YAAkE,GAAG;IACzE,CAACD,gBAAgB,CAACN,YAAY,CAACC,IAAI,CAAC,GAAGD,YAAY;IACnD,CAACM,gBAAgB,CAACF,YAAY,CAACH,IAAI,CAAC,GAAGG,YAAY;IACnD,CAACE,gBAAgB,CAACD,YAAY,CAACJ,IAAI,CAAC,GAAGI;EACzC,CAAU;EAEVR,EAAE,CAACW,MAAM,CAACd,kBAAkB,CAAC,CAACe,kBAAkB,CAAEC,MAAM,IAAK;IAC3D,MAAMC,IAAI,GAAGL,gBAAgB,CAACI,MAAM,CAAC;IACrC,IAAIC,IAAI,IAAI,IAAI,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,sBAAsBF,MAAM,EAAE,CAAC;IACjD;IACA,OAAOC,IAAI;EACb,CAAC,CAAC;EACFd,EAAE,CAACW,MAAM,CAACf,QAAQ,CAAC,CAACgB,kBAAkB,CAAEE,IAAI,IAAK;IAC/C,MAAME,WAAW,GAAGN,YAAY,CAACI,IAAI,CAACG,QAAQ,CAAC,CAAC,CAAC;IACjD,IAAID,WAAW,IAAI,IAAI,EAAE;MACvB,MAAM,IAAID,KAAK,CAAC,oBAAoBD,IAAI,CAACG,QAAQ,CAAC,CAAC,EAAE,CAAC;IACxD;IACA,OAAOC,OAAO,CAACC,OAAO,CAACC,IAAI,CAACC,SAAS,CAACL,WAAW,CAAC,CAAC;EACrD,CAAC,CAAC;EAEF,MAAMM,OAAO,GAAGtB,EAAE,CAACuB,EAAE,CAAC,CAAC;EACvB,MAAMtB,gBAAgB,CAAC,uBAAuB,EAAEqB,OAAO,CAAC;EAExDxB,MAAM,CAACwB,OAAO,CAAC,CAACE,qBAAqB,CAAC,CAAC,CAAC;EACxC1B,MAAM,CAACwB,OAAO,CAAC,CAACG,uBAAuB,CACrC,CAAC,EACD,uBAAuB,EACvBtB,YACF,CAAC;EACDL,MAAM,CAACwB,OAAO,CAAC,CAACG,uBAAuB,CACrC,CAAC,EACD,6CAA6C,EAC7ClB,YACF,CAAC;EACDT,MAAM,CAACwB,OAAO,CAAC,CAACG,uBAAuB,CACrC,CAAC,EACD,6CAA6C,EAC7CjB,YACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -1,87 +0,0 @@
1
- /*
2
- * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import fs from "fs";
18
- import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
19
- import * as codeWorkspacesMode from "../codeWorkspacesMode.js";
20
- const FOUNDRY_PROXY_URL = "foundry.proxy.url";
21
- const DEV_SERVER_DOMAIN = "workspace.stack.com";
22
- const DEV_SERVER_BASE_PATH = "/proxy/path";
23
- const FOUNDRY_PROXY_TOKEN = "/tmp/token.txt";
24
- const MOCK_TOKEN = "token-value";
25
- describe("codeWorkspacesMode", () => {
26
- beforeEach(() => {
27
- vi.restoreAllMocks();
28
- });
29
- afterEach(() => {
30
- vi.unstubAllEnvs();
31
- });
32
- describe("isCodeWorkspacesMode", () => {
33
- test("returns true for 'code-workspaces' mode", () => {
34
- expect(codeWorkspacesMode.isCodeWorkspacesMode("code-workspaces")).toBe(true);
35
- });
36
- test("returns false for other modes", () => {
37
- expect(codeWorkspacesMode.isCodeWorkspacesMode("dev")).toBe(false);
38
- expect(codeWorkspacesMode.isCodeWorkspacesMode(undefined)).toBe(false);
39
- });
40
- });
41
- describe("getCodeWorkspacesFoundryUrl", () => {
42
- test("returns correct URL when env is set", () => {
43
- vi.stubEnv("FOUNDRY_PROXY_URL", FOUNDRY_PROXY_URL);
44
- expect(codeWorkspacesMode.getCodeWorkspacesFoundryUrl()).toBe(`https://${FOUNDRY_PROXY_URL}`);
45
- });
46
- test("throws if env is missing", () => {
47
- vi.stubEnv("FOUNDRY_PROXY_URL", undefined);
48
- expect(() => codeWorkspacesMode.getCodeWorkspacesFoundryUrl()).toThrow();
49
- });
50
- });
51
- describe("getCodeWorkspacesBaseHref", () => {
52
- test("returns correct base href when env is set", () => {
53
- vi.stubEnv("DEV_SERVER_DOMAIN", DEV_SERVER_DOMAIN);
54
- vi.stubEnv("DEV_SERVER_BASE_PATH", DEV_SERVER_BASE_PATH);
55
- expect(codeWorkspacesMode.getCodeWorkspacesBaseHref()).toBe(`https://${DEV_SERVER_DOMAIN}${DEV_SERVER_BASE_PATH}`);
56
- });
57
- test("throws if DEV_SERVER_DOMAIN is missing", () => {
58
- vi.stubEnv("DEV_SERVER_DOMAIN", undefined);
59
- vi.stubEnv("DEV_SERVER_BASE_PATH", DEV_SERVER_BASE_PATH);
60
- expect(() => codeWorkspacesMode.getCodeWorkspacesBaseHref()).toThrow();
61
- });
62
- test("throws if DEV_SERVER_BASE_PATH is missing", () => {
63
- vi.stubEnv("DEV_SERVER_DOMAIN", DEV_SERVER_DOMAIN);
64
- vi.stubEnv("DEV_SERVER_BASE_PATH", undefined);
65
- expect(() => codeWorkspacesMode.getCodeWorkspacesBaseHref()).toThrow();
66
- });
67
- });
68
- describe("getCodeWorkspacesFoundryToken", () => {
69
- test("returns token from file when env and file are set", () => {
70
- vi.stubEnv("FOUNDRY_PROXY_TOKEN", FOUNDRY_PROXY_TOKEN);
71
- vi.spyOn(fs, "readFileSync").mockReturnValue(MOCK_TOKEN);
72
- expect(codeWorkspacesMode.getCodeWorkspacesFoundryToken()).toBe(MOCK_TOKEN);
73
- });
74
- test("throws if env is missing", () => {
75
- vi.stubEnv("FOUNDRY_PROXY_TOKEN", undefined);
76
- expect(() => codeWorkspacesMode.getCodeWorkspacesFoundryToken()).toThrow();
77
- });
78
- test("throws if file read fails", () => {
79
- vi.stubEnv("FOUNDRY_PROXY_TOKEN", FOUNDRY_PROXY_TOKEN);
80
- vi.spyOn(fs, "readFileSync").mockImplementation(() => {
81
- throw new Error("fail");
82
- });
83
- expect(() => codeWorkspacesMode.getCodeWorkspacesFoundryToken()).toThrow();
84
- });
85
- });
86
- });
87
- //# sourceMappingURL=codeWorkspacesMode.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codeWorkspacesMode.test.js","names":["fs","afterEach","beforeEach","describe","expect","test","vi","codeWorkspacesMode","FOUNDRY_PROXY_URL","DEV_SERVER_DOMAIN","DEV_SERVER_BASE_PATH","FOUNDRY_PROXY_TOKEN","MOCK_TOKEN","restoreAllMocks","unstubAllEnvs","isCodeWorkspacesMode","toBe","undefined","stubEnv","getCodeWorkspacesFoundryUrl","toThrow","getCodeWorkspacesBaseHref","spyOn","mockReturnValue","getCodeWorkspacesFoundryToken","mockImplementation","Error"],"sources":["codeWorkspacesMode.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport fs from \"fs\";\nimport { afterEach, beforeEach, describe, expect, test, vi } from \"vitest\";\nimport * as codeWorkspacesMode from \"../codeWorkspacesMode.js\";\n\nconst FOUNDRY_PROXY_URL = \"foundry.proxy.url\";\nconst DEV_SERVER_DOMAIN = \"workspace.stack.com\";\nconst DEV_SERVER_BASE_PATH = \"/proxy/path\";\nconst FOUNDRY_PROXY_TOKEN = \"/tmp/token.txt\";\nconst MOCK_TOKEN = \"token-value\";\n\ndescribe(\"codeWorkspacesMode\", () => {\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n afterEach(() => {\n vi.unstubAllEnvs();\n });\n\n describe(\"isCodeWorkspacesMode\", () => {\n test(\"returns true for 'code-workspaces' mode\", () => {\n expect(codeWorkspacesMode.isCodeWorkspacesMode(\"code-workspaces\")).toBe(\n true,\n );\n });\n\n test(\"returns false for other modes\", () => {\n expect(codeWorkspacesMode.isCodeWorkspacesMode(\"dev\")).toBe(false);\n expect(codeWorkspacesMode.isCodeWorkspacesMode(undefined)).toBe(false);\n });\n });\n\n describe(\"getCodeWorkspacesFoundryUrl\", () => {\n test(\"returns correct URL when env is set\", () => {\n vi.stubEnv(\"FOUNDRY_PROXY_URL\", FOUNDRY_PROXY_URL);\n expect(codeWorkspacesMode.getCodeWorkspacesFoundryUrl()).toBe(\n `https://${FOUNDRY_PROXY_URL}`,\n );\n });\n\n test(\"throws if env is missing\", () => {\n vi.stubEnv(\"FOUNDRY_PROXY_URL\", undefined);\n expect(() => codeWorkspacesMode.getCodeWorkspacesFoundryUrl()).toThrow();\n });\n });\n\n describe(\"getCodeWorkspacesBaseHref\", () => {\n test(\"returns correct base href when env is set\", () => {\n vi.stubEnv(\"DEV_SERVER_DOMAIN\", DEV_SERVER_DOMAIN);\n vi.stubEnv(\"DEV_SERVER_BASE_PATH\", DEV_SERVER_BASE_PATH);\n expect(codeWorkspacesMode.getCodeWorkspacesBaseHref()).toBe(\n `https://${DEV_SERVER_DOMAIN}${DEV_SERVER_BASE_PATH}`,\n );\n });\n\n test(\"throws if DEV_SERVER_DOMAIN is missing\", () => {\n vi.stubEnv(\"DEV_SERVER_DOMAIN\", undefined);\n vi.stubEnv(\"DEV_SERVER_BASE_PATH\", DEV_SERVER_BASE_PATH);\n expect(() => codeWorkspacesMode.getCodeWorkspacesBaseHref()).toThrow();\n });\n\n test(\"throws if DEV_SERVER_BASE_PATH is missing\", () => {\n vi.stubEnv(\"DEV_SERVER_DOMAIN\", DEV_SERVER_DOMAIN);\n vi.stubEnv(\"DEV_SERVER_BASE_PATH\", undefined);\n expect(() => codeWorkspacesMode.getCodeWorkspacesBaseHref()).toThrow();\n });\n });\n\n describe(\"getCodeWorkspacesFoundryToken\", () => {\n test(\"returns token from file when env and file are set\", () => {\n vi.stubEnv(\"FOUNDRY_PROXY_TOKEN\", FOUNDRY_PROXY_TOKEN);\n vi.spyOn(fs, \"readFileSync\").mockReturnValue(MOCK_TOKEN);\n expect(codeWorkspacesMode.getCodeWorkspacesFoundryToken()).toBe(\n MOCK_TOKEN,\n );\n });\n\n test(\"throws if env is missing\", () => {\n vi.stubEnv(\"FOUNDRY_PROXY_TOKEN\", undefined);\n expect(() => codeWorkspacesMode.getCodeWorkspacesFoundryToken())\n .toThrow();\n });\n\n test(\"throws if file read fails\", () => {\n vi.stubEnv(\"FOUNDRY_PROXY_TOKEN\", FOUNDRY_PROXY_TOKEN);\n vi.spyOn(fs, \"readFileSync\").mockImplementation(() => {\n throw new Error(\"fail\");\n });\n expect(() => codeWorkspacesMode.getCodeWorkspacesFoundryToken())\n .toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,34 +0,0 @@
1
- /*
2
- * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { expect, test } from "vitest";
18
- import { extractInjectedScripts } from "../extractInjectedScripts.js";
19
- const EXAMPLE_SCRIPTS = `
20
- <script src="/src-script.js"></script>
21
- <script>
22
- console.log("Hello, world!");
23
- </script>
24
- `;
25
- test("extractInjectedScripts", async () => {
26
- const result = await extractInjectedScripts({
27
- transformIndexHtml: () => Promise.resolve(EXAMPLE_SCRIPTS)
28
- });
29
- expect(result).toEqual({
30
- scriptSources: ["/src-script.js"],
31
- inlineScripts: ["console.log(\"Hello, world!\");"]
32
- });
33
- });
34
- //# sourceMappingURL=extractInjectedScripts.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractInjectedScripts.test.js","names":["expect","test","extractInjectedScripts","EXAMPLE_SCRIPTS","result","transformIndexHtml","Promise","resolve","toEqual","scriptSources","inlineScripts"],"sources":["extractInjectedScripts.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { expect, test } from \"vitest\";\nimport { extractInjectedScripts } from \"../extractInjectedScripts.js\";\n\nconst EXAMPLE_SCRIPTS = `\n<script src=\"/src-script.js\"></script>\n<script>\nconsole.log(\"Hello, world!\");\n</script>\n`;\n\ntest(\"extractInjectedScripts\", async () => {\n const server = {\n transformIndexHtml: () => Promise.resolve(EXAMPLE_SCRIPTS),\n };\n\n const result = await extractInjectedScripts(server);\n expect(result).toEqual({\n scriptSources: [\"/src-script.js\"],\n inlineScripts: [\"console.log(\\\"Hello, world!\\\");\"],\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,EAAEC,IAAI,QAAQ,QAAQ;AACrC,SAASC,sBAAsB,QAAQ,8BAA8B;AAErE,MAAMC,eAAe,GAAG;AACxB;AACA;AACA;AACA;AACA,CAAC;AAEDF,IAAI,CAAC,wBAAwB,EAAE,YAAY;EAKzC,MAAMG,MAAM,GAAG,MAAMF,sBAAsB,CAJ5B;IACbG,kBAAkB,EAAEA,CAAA,KAAMC,OAAO,CAACC,OAAO,CAACJ,eAAe;EAC3D,CAEkD,CAAC;EACnDH,MAAM,CAACI,MAAM,CAAC,CAACI,OAAO,CAAC;IACrBC,aAAa,EAAE,CAAC,gBAAgB,CAAC;IACjCC,aAAa,EAAE,CAAC,iCAAiC;EACnD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { beforeEach, describe, expect, test, vi } from "vitest";
18
- import * as codeWorkspacesMode from "../codeWorkspacesMode.js";
19
- import { getBaseHref } from "../getBaseHref.js";
20
- describe("getBaseHref", () => {
21
- beforeEach(() => {
22
- vi.restoreAllMocks();
23
- });
24
- test("returns localhost URLs in local mode", () => {
25
- const result = getBaseHref({
26
- config: {
27
- mode: "",
28
- base: "/",
29
- server: {
30
- https: false,
31
- port: 5173
32
- }
33
- }
34
- });
35
- expect(result).toEqual("http://localhost:5173/");
36
- });
37
- test("returns code workspaces URLs in code workspaces mode", () => {
38
- // Representative value when running dev mode in Code Workspaces mode
39
- vi.spyOn(codeWorkspacesMode, "getCodeWorkspacesBaseHref").mockReturnValue("https://workspace.stack.com/proxy/path");
40
- const result = getBaseHref({
41
- config: {
42
- mode: "code-workspaces"
43
- }
44
- });
45
- expect(result).toEqual("https://workspace.stack.com/proxy/path/");
46
- });
47
- });
48
- //# sourceMappingURL=getBaseHref.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBaseHref.test.js","names":["beforeEach","describe","expect","test","vi","codeWorkspacesMode","getBaseHref","restoreAllMocks","result","config","mode","base","server","https","port","toEqual","spyOn","mockReturnValue"],"sources":["getBaseHref.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ViteDevServer } from \"vite\";\nimport { beforeEach, describe, expect, test, vi } from \"vitest\";\nimport * as codeWorkspacesMode from \"../codeWorkspacesMode.js\";\nimport { getBaseHref } from \"../getBaseHref.js\";\n\ndescribe(\"getBaseHref\", () => {\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n test(\"returns localhost URLs in local mode\", () => {\n const server = {\n config: {\n mode: \"\",\n base: \"/\",\n server: { https: false, port: 5173 },\n },\n } as unknown as ViteDevServer;\n\n const result = getBaseHref(server);\n expect(result).toEqual(\"http://localhost:5173/\");\n });\n\n test(\"returns code workspaces URLs in code workspaces mode\", () => {\n // Representative value when running dev mode in Code Workspaces mode\n vi.spyOn(codeWorkspacesMode, \"getCodeWorkspacesBaseHref\").mockReturnValue(\n \"https://workspace.stack.com/proxy/path\",\n );\n\n const server = {\n config: { mode: \"code-workspaces\" },\n } as unknown as ViteDevServer;\n\n const result = getBaseHref(server);\n expect(result).toEqual(\"https://workspace.stack.com/proxy/path/\");\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AAC/D,OAAO,KAAKC,kBAAkB,MAAM,0BAA0B;AAC9D,SAASC,WAAW,QAAQ,mBAAmB;AAE/CL,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5BD,UAAU,CAAC,MAAM;IACfI,EAAE,CAACG,eAAe,CAAC,CAAC;EACtB,CAAC,CAAC;EAEFJ,IAAI,CAAC,sCAAsC,EAAE,MAAM;IASjD,MAAMK,MAAM,GAAGF,WAAW,CARX;MACbG,MAAM,EAAE;QACNC,IAAI,EAAE,EAAE;QACRC,IAAI,EAAE,GAAG;QACTC,MAAM,EAAE;UAAEC,KAAK,EAAE,KAAK;UAAEC,IAAI,EAAE;QAAK;MACrC;IACF,CAEiC,CAAC;IAClCZ,MAAM,CAACM,MAAM,CAAC,CAACO,OAAO,CAAC,wBAAwB,CAAC;EAClD,CAAC,CAAC;EAEFZ,IAAI,CAAC,sDAAsD,EAAE,MAAM;IACjE;IACAC,EAAE,CAACY,KAAK,CAACX,kBAAkB,EAAE,2BAA2B,CAAC,CAACY,eAAe,CACvE,wCACF,CAAC;IAMD,MAAMT,MAAM,GAAGF,WAAW,CAJX;MACbG,MAAM,EAAE;QAAEC,IAAI,EAAE;MAAkB;IACpC,CAEiC,CAAC;IAClCR,MAAM,CAACM,MAAM,CAAC,CAACO,OAAO,CAAC,yCAAyC,CAAC;EACnE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}