@stackframe/stack-shared 2.8.28 → 2.8.30

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 (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/config/schema.d.mts +391 -15
  3. package/dist/config/schema.d.ts +391 -15
  4. package/dist/config/schema.js +70 -2
  5. package/dist/config/schema.js.map +1 -1
  6. package/dist/esm/config/schema.js +70 -3
  7. package/dist/esm/config/schema.js.map +1 -1
  8. package/dist/esm/interface/admin-interface.js +43 -0
  9. package/dist/esm/interface/admin-interface.js.map +1 -1
  10. package/dist/esm/interface/crud/projects.js +4 -0
  11. package/dist/esm/interface/crud/projects.js.map +1 -1
  12. package/dist/esm/known-errors.js +73 -1
  13. package/dist/esm/known-errors.js.map +1 -1
  14. package/dist/esm/schema-fields.js +67 -4
  15. package/dist/esm/schema-fields.js.map +1 -1
  16. package/dist/esm/utils/featurebase.js +176 -0
  17. package/dist/esm/utils/featurebase.js.map +1 -0
  18. package/dist/esm/utils/html.js +6 -1
  19. package/dist/esm/utils/html.js.map +1 -1
  20. package/dist/interface/admin-interface.d.mts +10 -0
  21. package/dist/interface/admin-interface.d.ts +10 -0
  22. package/dist/interface/admin-interface.js +43 -0
  23. package/dist/interface/admin-interface.js.map +1 -1
  24. package/dist/interface/crud/project-api-keys.d.mts +4 -4
  25. package/dist/interface/crud/project-api-keys.d.ts +4 -4
  26. package/dist/interface/crud/projects.d.mts +35 -7
  27. package/dist/interface/crud/projects.d.ts +35 -7
  28. package/dist/interface/crud/projects.js +4 -0
  29. package/dist/interface/crud/projects.js.map +1 -1
  30. package/dist/known-errors.d.mts +15 -0
  31. package/dist/known-errors.d.ts +15 -0
  32. package/dist/known-errors.js +73 -1
  33. package/dist/known-errors.js.map +1 -1
  34. package/dist/schema-fields.d.mts +88 -2
  35. package/dist/schema-fields.d.ts +88 -2
  36. package/dist/schema-fields.js +71 -3
  37. package/dist/schema-fields.js.map +1 -1
  38. package/dist/utils/featurebase.d.mts +28 -0
  39. package/dist/utils/featurebase.d.ts +28 -0
  40. package/dist/utils/featurebase.js +201 -0
  41. package/dist/utils/featurebase.js.map +1 -0
  42. package/dist/utils/html.d.mts +2 -1
  43. package/dist/utils/html.d.ts +2 -1
  44. package/dist/utils/html.js +8 -2
  45. package/dist/utils/html.js.map +1 -1
  46. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  declare function escapeHtml(unsafe: string): string;
2
2
  declare function html(strings: TemplateStringsArray, ...values: any[]): string;
3
+ declare function htmlToText(untrustedHtml: string): string;
3
4
 
4
- export { escapeHtml, html };
5
+ export { escapeHtml, html, htmlToText };
@@ -1,4 +1,5 @@
1
1
  declare function escapeHtml(unsafe: string): string;
2
2
  declare function html(strings: TemplateStringsArray, ...values: any[]): string;
3
+ declare function htmlToText(untrustedHtml: string): string;
3
4
 
4
- export { escapeHtml, html };
5
+ export { escapeHtml, html, htmlToText };
@@ -21,7 +21,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var html_exports = {};
22
22
  __export(html_exports, {
23
23
  escapeHtml: () => escapeHtml,
24
- html: () => html
24
+ html: () => html,
25
+ htmlToText: () => htmlToText
25
26
  });
26
27
  module.exports = __toCommonJS(html_exports);
27
28
  var import_strings = require("./strings.js");
@@ -31,9 +32,14 @@ function escapeHtml(unsafe) {
31
32
  function html(strings, ...values) {
32
33
  return (0, import_strings.templateIdentity)(strings, ...values.map((v) => escapeHtml(`${v}`)));
33
34
  }
35
+ function htmlToText(untrustedHtml) {
36
+ const doc = new DOMParser().parseFromString(untrustedHtml, "text/html");
37
+ return doc.body.textContent ?? "";
38
+ }
34
39
  // Annotate the CommonJS export names for ESM import in node:
35
40
  0 && (module.exports = {
36
41
  escapeHtml,
37
- html
42
+ html,
43
+ htmlToText
38
44
  });
39
45
  //# sourceMappingURL=html.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/html.tsx"],"sourcesContent":["import { templateIdentity } from \"./strings\";\n\nexport function escapeHtml(unsafe: string): string {\n return `${unsafe}`\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, \"&quot;\")\n .replace(/'/g, \"&#039;\");\n}\nundefined?.test(\"escapeHtml\", ({ expect }) => {\n // Test with empty string\n expect(escapeHtml(\"\")).toBe(\"\");\n\n // Test with string without special characters\n expect(escapeHtml(\"hello world\")).toBe(\"hello world\");\n\n // Test with special characters\n expect(escapeHtml(\"<div>\")).toBe(\"&lt;div&gt;\");\n expect(escapeHtml(\"a & b\")).toBe(\"a &amp; b\");\n expect(escapeHtml('a \"quoted\" string')).toBe(\"a &quot;quoted&quot; string\");\n expect(escapeHtml(\"it's a test\")).toBe(\"it&#039;s a test\");\n\n // Test with multiple special characters\n expect(escapeHtml(\"<a href=\\\"test\\\">It's a link</a>\")).toBe(\n \"&lt;a href=&quot;test&quot;&gt;It&#039;s a link&lt;/a&gt;\"\n );\n});\n\nexport function html(strings: TemplateStringsArray, ...values: any[]): string {\n return templateIdentity(strings, ...values.map(v => escapeHtml(`${v}`)));\n}\nundefined?.test(\"html\", ({ expect }) => {\n // Test with no interpolation\n expect(html`simple string`).toBe(\"simple string\");\n\n // Test with string interpolation\n expect(html`Hello, ${\"world\"}!`).toBe(\"Hello, world!\");\n\n // Test with number interpolation\n expect(html`Count: ${42}`).toBe(\"Count: 42\");\n\n // Test with HTML special characters in interpolated values\n expect(html`<div>${\"<script>\"}</div>`).toBe(\"<div>&lt;script&gt;</div>\");\n\n // Test with multiple interpolations\n expect(html`${1} + ${2} = ${\"<3\"}`).toBe(\"1 + 2 = &lt;3\");\n\n // Test with object interpolation\n const obj = { toString: () => \"<object>\" };\n expect(html`Object: ${obj}`).toBe(\"Object: &lt;object&gt;\");\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAiC;AAE1B,SAAS,WAAW,QAAwB;AACjD,SAAO,GAAG,MAAM,GACb,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,QAAQ;AAC3B;AAoBO,SAAS,KAAK,YAAkC,QAAuB;AAC5E,aAAO,iCAAiB,SAAS,GAAG,OAAO,IAAI,OAAK,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;AACzE;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/html.tsx"],"sourcesContent":["import { templateIdentity } from \"./strings\";\n\nexport function escapeHtml(unsafe: string): string {\n return `${unsafe}`\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, \"&quot;\")\n .replace(/'/g, \"&#039;\");\n}\nundefined?.test(\"escapeHtml\", ({ expect }) => {\n // Test with empty string\n expect(escapeHtml(\"\")).toBe(\"\");\n\n // Test with string without special characters\n expect(escapeHtml(\"hello world\")).toBe(\"hello world\");\n\n // Test with special characters\n expect(escapeHtml(\"<div>\")).toBe(\"&lt;div&gt;\");\n expect(escapeHtml(\"a & b\")).toBe(\"a &amp; b\");\n expect(escapeHtml('a \"quoted\" string')).toBe(\"a &quot;quoted&quot; string\");\n expect(escapeHtml(\"it's a test\")).toBe(\"it&#039;s a test\");\n\n // Test with multiple special characters\n expect(escapeHtml(\"<a href=\\\"test\\\">It's a link</a>\")).toBe(\n \"&lt;a href=&quot;test&quot;&gt;It&#039;s a link&lt;/a&gt;\"\n );\n});\n\nexport function html(strings: TemplateStringsArray, ...values: any[]): string {\n return templateIdentity(strings, ...values.map(v => escapeHtml(`${v}`)));\n}\nundefined?.test(\"html\", ({ expect }) => {\n // Test with no interpolation\n expect(html`simple string`).toBe(\"simple string\");\n\n // Test with string interpolation\n expect(html`Hello, ${\"world\"}!`).toBe(\"Hello, world!\");\n\n // Test with number interpolation\n expect(html`Count: ${42}`).toBe(\"Count: 42\");\n\n // Test with HTML special characters in interpolated values\n expect(html`<div>${\"<script>\"}</div>`).toBe(\"<div>&lt;script&gt;</div>\");\n\n // Test with multiple interpolations\n expect(html`${1} + ${2} = ${\"<3\"}`).toBe(\"1 + 2 = &lt;3\");\n\n // Test with object interpolation\n const obj = { toString: () => \"<object>\" };\n expect(html`Object: ${obj}`).toBe(\"Object: &lt;object&gt;\");\n});\n\nexport function htmlToText(untrustedHtml: string): string {\n\n const doc = new DOMParser().parseFromString(untrustedHtml, 'text/html');\n\n return doc.body.textContent ?? '';\n\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAiC;AAE1B,SAAS,WAAW,QAAwB;AACjD,SAAO,GAAG,MAAM,GACb,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,QAAQ;AAC3B;AAoBO,SAAS,KAAK,YAAkC,QAAuB;AAC5E,aAAO,iCAAiB,SAAS,GAAG,OAAO,IAAI,OAAK,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;AACzE;AAsBO,SAAS,WAAW,eAA+B;AAExD,QAAM,MAAM,IAAI,UAAU,EAAE,gBAAgB,eAAe,WAAW;AAEtE,SAAO,IAAI,KAAK,eAAe;AAEjC;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackframe/stack-shared",
3
- "version": "2.8.28",
3
+ "version": "2.8.30",
4
4
  "files": [
5
5
  "README.md",
6
6
  "dist",