@selvajs/platform 0.16.1-beta.2 → 0.17.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 (127) hide show
  1. package/README.md +25 -28
  2. package/dist/access/rules.d.ts +20 -26
  3. package/dist/access/rules.d.ts.map +1 -1
  4. package/dist/access/rules.js +16 -16
  5. package/dist/access/rules.js.map +1 -1
  6. package/dist/auth/interface.d.ts +99 -116
  7. package/dist/auth/interface.d.ts.map +1 -1
  8. package/dist/auth/types.d.ts +1 -4
  9. package/dist/auth/types.d.ts.map +1 -1
  10. package/dist/bindings/interface.d.ts +19 -32
  11. package/dist/bindings/interface.d.ts.map +1 -1
  12. package/dist/bindings/interface.js +6 -12
  13. package/dist/bindings/interface.js.map +1 -1
  14. package/dist/computeServer/interface.d.ts +34 -41
  15. package/dist/computeServer/interface.d.ts.map +1 -1
  16. package/dist/computeServer/secrets.d.ts +16 -20
  17. package/dist/computeServer/secrets.d.ts.map +1 -1
  18. package/dist/computeServer/secrets.js +11 -12
  19. package/dist/computeServer/secrets.js.map +1 -1
  20. package/dist/computeServer/types.d.ts +15 -17
  21. package/dist/computeServer/types.d.ts.map +1 -1
  22. package/dist/computeServer/types.js.map +1 -1
  23. package/dist/computeServer/utils.d.ts +8 -14
  24. package/dist/computeServer/utils.d.ts.map +1 -1
  25. package/dist/computeServer/utils.js +8 -16
  26. package/dist/computeServer/utils.js.map +1 -1
  27. package/dist/config.d.ts +16 -39
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +1 -2
  30. package/dist/config.js.map +1 -1
  31. package/dist/context.d.ts +12 -19
  32. package/dist/context.d.ts.map +1 -1
  33. package/dist/context.js +6 -10
  34. package/dist/context.js.map +1 -1
  35. package/dist/data/interface.d.ts +32 -47
  36. package/dist/data/interface.d.ts.map +1 -1
  37. package/dist/data/interface.js +7 -10
  38. package/dist/data/interface.js.map +1 -1
  39. package/dist/definitions/interface.d.ts +24 -31
  40. package/dist/definitions/interface.d.ts.map +1 -1
  41. package/dist/definitions/schemas.d.ts.map +1 -1
  42. package/dist/definitions/schemas.js +6 -9
  43. package/dist/definitions/schemas.js.map +1 -1
  44. package/dist/definitions/types.d.ts +26 -42
  45. package/dist/definitions/types.d.ts.map +1 -1
  46. package/dist/definitions/types.js +0 -1
  47. package/dist/definitions/types.js.map +1 -1
  48. package/dist/errors/interface.d.ts +4 -8
  49. package/dist/errors/interface.d.ts.map +1 -1
  50. package/dist/errors/interface.js.map +1 -1
  51. package/dist/errors.d.ts +2 -5
  52. package/dist/errors.d.ts.map +1 -1
  53. package/dist/errors.js +2 -5
  54. package/dist/errors.js.map +1 -1
  55. package/dist/events/audit.d.ts +13 -26
  56. package/dist/events/audit.d.ts.map +1 -1
  57. package/dist/events/interface.d.ts +17 -33
  58. package/dist/events/interface.d.ts.map +1 -1
  59. package/dist/events/interface.js +7 -22
  60. package/dist/events/interface.js.map +1 -1
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/invites/interface.d.ts +3 -9
  64. package/dist/invites/interface.d.ts.map +1 -1
  65. package/dist/invites/types.d.ts +4 -11
  66. package/dist/invites/types.d.ts.map +1 -1
  67. package/dist/logging/interface.d.ts +19 -33
  68. package/dist/logging/interface.d.ts.map +1 -1
  69. package/dist/logging/interface.js +9 -17
  70. package/dist/logging/interface.js.map +1 -1
  71. package/dist/metrics/interface.d.ts +16 -31
  72. package/dist/metrics/interface.d.ts.map +1 -1
  73. package/dist/metrics/interface.js +1 -5
  74. package/dist/metrics/interface.js.map +1 -1
  75. package/dist/organizations/interface.d.ts +14 -23
  76. package/dist/organizations/interface.d.ts.map +1 -1
  77. package/dist/organizations/paths.d.ts +9 -12
  78. package/dist/organizations/paths.d.ts.map +1 -1
  79. package/dist/organizations/paths.js +12 -16
  80. package/dist/organizations/paths.js.map +1 -1
  81. package/dist/organizations/schemas.d.ts +10 -19
  82. package/dist/organizations/schemas.d.ts.map +1 -1
  83. package/dist/organizations/schemas.js +10 -19
  84. package/dist/organizations/schemas.js.map +1 -1
  85. package/dist/organizations/types.d.ts +3 -4
  86. package/dist/organizations/types.d.ts.map +1 -1
  87. package/dist/pagination.d.ts +13 -21
  88. package/dist/pagination.d.ts.map +1 -1
  89. package/dist/pagination.js.map +1 -1
  90. package/dist/permissions/interface.d.ts +12 -21
  91. package/dist/permissions/interface.d.ts.map +1 -1
  92. package/dist/permissions/types.d.ts +5 -5
  93. package/dist/permissions/types.js +5 -5
  94. package/dist/platformProjects/interface.d.ts +7 -14
  95. package/dist/platformProjects/interface.d.ts.map +1 -1
  96. package/dist/platformProjects/types.d.ts +1 -4
  97. package/dist/platformProjects/types.d.ts.map +1 -1
  98. package/dist/projects/interface.d.ts +12 -17
  99. package/dist/projects/interface.d.ts.map +1 -1
  100. package/dist/shareLinks/interface.d.ts +5 -8
  101. package/dist/shareLinks/interface.d.ts.map +1 -1
  102. package/dist/shareLinks/schemas.d.ts.map +1 -1
  103. package/dist/shareLinks/schemas.js +1 -5
  104. package/dist/shareLinks/schemas.js.map +1 -1
  105. package/dist/shareLinks/types.d.ts +5 -6
  106. package/dist/shareLinks/types.d.ts.map +1 -1
  107. package/dist/shareLinks/types.js.map +1 -1
  108. package/dist/solveCache/interface.d.ts +32 -46
  109. package/dist/solveCache/interface.d.ts.map +1 -1
  110. package/dist/solveCache/interface.js.map +1 -1
  111. package/dist/storage/assetClasses.d.ts +16 -24
  112. package/dist/storage/assetClasses.d.ts.map +1 -1
  113. package/dist/storage/assetClasses.js +21 -28
  114. package/dist/storage/assetClasses.js.map +1 -1
  115. package/dist/storage/cacheBust.d.ts +12 -14
  116. package/dist/storage/cacheBust.d.ts.map +1 -1
  117. package/dist/storage/cacheBust.js +12 -14
  118. package/dist/storage/cacheBust.js.map +1 -1
  119. package/dist/storage/image.d.ts +9 -13
  120. package/dist/storage/image.d.ts.map +1 -1
  121. package/dist/storage/image.js +9 -13
  122. package/dist/storage/image.js.map +1 -1
  123. package/dist/userProfile/interface.d.ts +1 -1
  124. package/dist/userProfile/types.d.ts +1 -5
  125. package/dist/userProfile/types.d.ts.map +1 -1
  126. package/dist/userProfile/types.js.map +1 -1
  127. package/package.json +4 -4
@@ -1,21 +1,19 @@
1
1
  /**
2
- * Append a cache-busting token to a stored-asset URL.
2
+ * Appends a cache-busting token to a stored-asset URL.
3
3
  *
4
- * Mutable blobs are overwritten **in place** (`IStorageProvider.put` is upsert),
5
- * so a re-upload keeps the same storage path and therefore the same public
6
- * URL. A browser/CDN that cached the old bytes under that URL keeps serving them
7
- * until the TTL expires, which reads as "the replace didn't work". Appending a
8
- * token that changes only when the content changes gives each new version a
9
- * distinct URL (forcing a refetch) while letting unchanged assets stay cached.
4
+ * `IStorageProvider.put` upserts, so a re-upload keeps the same storage path
5
+ * and public URL a browser/CDN caching the old bytes under that URL keeps
6
+ * serving them past the TTL, which reads as "the replace didn't work."
7
+ * Appending a token that only changes with the content gives each version a
8
+ * distinct URL, forcing a refetch, while unchanged assets stay cached.
10
9
  *
11
- * Generic over asset kind: the caller supplies the token from whatever it has
12
- * that tracks the blob's version a content hash, the owning record's
13
- * `updatedAt`, a version counter. The serving route ignores the query string
14
- * (SvelteKit's `[...path]` param never includes it), so this is purely a
15
- * client-cache key and needs no route support.
10
+ * Generic over asset kind pass whatever tracks the blob's version (content
11
+ * hash, `updatedAt`, a counter). The serving route ignores the query string
12
+ * (SvelteKit's `[...path]` param never includes it), so this needs no route
13
+ * support.
16
14
  *
17
- * Empty/whitespace tokens are dropped (returns the URL unchanged) so a missing
18
- * token degrades to "no cache-bust" rather than `?v=`.
15
+ * Empty/whitespace tokens return the URL unchanged, so a missing token
16
+ * degrades to "no cache-bust" rather than `?v=`.
19
17
  */
20
18
  export function withCacheBust(url, token) {
21
19
  if (token === undefined || token === null)
@@ -1 +1 @@
1
- {"version":3,"file":"cacheBust.js","sourceRoot":"","sources":["../../src/storage/cacheBust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,KAAyC;IACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,OAAO,GAAG,GAAG,GAAG,GAAG,KAAK,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"cacheBust.js","sourceRoot":"","sources":["../../src/storage/cacheBust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,KAAyC;IACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,OAAO,GAAG,GAAG,GAAG,GAAG,KAAK,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC"}
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * Shared image-transcoding helper for `IStorageProvider` implementations.
3
- * Cover images are normalized to WebP at upload time (capped at 1200px,
4
- * quality 85) so storage/bandwidth stays predictable and the viewer path
5
- * is uniform.
3
+ * Normalizes uploads to WebP (capped at 1200px, quality 85) so storage,
4
+ * bandwidth, and the viewer path stay predictable.
6
5
  *
7
- * `sharp` is loaded via a dynamic import so the platform package has no
8
- * hard runtime dependency on it — install it in providers that need
9
- * transcoding (optional peer dependency).
6
+ * `sharp` is a dynamic import, not a hard dependency of this package
7
+ * providers that need transcoding install it themselves.
10
8
  */
11
9
  export declare const IMAGE_MAX_WIDTH = 1200;
12
10
  export declare const IMAGE_WEBP_QUALITY = 85;
@@ -19,18 +17,16 @@ export interface TranscodeResult {
19
17
  /** True if the input looks like an image to process — by content type or path extension. */
20
18
  export declare function isImageUpload(contentType: string | undefined, storagePath: string): boolean;
21
19
  /**
22
- * Rewrite a path's extension to `.webp`. Unchanged if not a recognized image
23
- * extension. SVG is included: every upload (including SVG) is rasterized to
24
- * WebP, so a `.svg` input is stored as `.webp` — no vector blob is ever
25
- * persisted, which keeps the served bytes XSS-free without a sanitizer.
20
+ * Rewrites a path's extension to `.webp`; unchanged for non-image extensions.
21
+ * SVG is rasterized like any other input, so no vector blob is ever
22
+ * persisted served bytes stay XSS-free without a sanitizer.
26
23
  */
27
24
  export declare function toWebpPath(storagePath: string): string;
28
25
  /**
29
- * If the input is an image, transcode to WebP (capped + re-encoded) and
30
- * return rewritten bytes/content-type/path. Non-images pass through, so
26
+ * Transcodes images to WebP; passes non-images through unchanged, so
31
27
  * providers can call this unconditionally before `put`.
32
28
  *
33
- * Throws if `sharp` isn't installed — that's a config error, not a fallback.
29
+ * Throws if `sharp` isn't installed — a config error, not a fallback.
34
30
  */
35
31
  export declare function transcodeImageIfNeeded(data: Uint8Array, contentType: string | undefined, storagePath: string): Promise<TranscodeResult>;
36
32
  //# sourceMappingURL=image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/storage/image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAG3F;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAgB1B"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/storage/image.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAG3F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAgB1B"}
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * Shared image-transcoding helper for `IStorageProvider` implementations.
3
- * Cover images are normalized to WebP at upload time (capped at 1200px,
4
- * quality 85) so storage/bandwidth stays predictable and the viewer path
5
- * is uniform.
3
+ * Normalizes uploads to WebP (capped at 1200px, quality 85) so storage,
4
+ * bandwidth, and the viewer path stay predictable.
6
5
  *
7
- * `sharp` is loaded via a dynamic import so the platform package has no
8
- * hard runtime dependency on it — install it in providers that need
9
- * transcoding (optional peer dependency).
6
+ * `sharp` is a dynamic import, not a hard dependency of this package
7
+ * providers that need transcoding install it themselves.
10
8
  */
11
9
  export const IMAGE_MAX_WIDTH = 1200;
12
10
  export const IMAGE_WEBP_QUALITY = 85;
@@ -17,20 +15,18 @@ export function isImageUpload(contentType, storagePath) {
17
15
  return /\.(webp|png|jpe?g|gif|bmp|tif?f|svg)$/i.test(storagePath);
18
16
  }
19
17
  /**
20
- * Rewrite a path's extension to `.webp`. Unchanged if not a recognized image
21
- * extension. SVG is included: every upload (including SVG) is rasterized to
22
- * WebP, so a `.svg` input is stored as `.webp` — no vector blob is ever
23
- * persisted, which keeps the served bytes XSS-free without a sanitizer.
18
+ * Rewrites a path's extension to `.webp`; unchanged for non-image extensions.
19
+ * SVG is rasterized like any other input, so no vector blob is ever
20
+ * persisted served bytes stay XSS-free without a sanitizer.
24
21
  */
25
22
  export function toWebpPath(storagePath) {
26
23
  return storagePath.replace(/\.(png|jpe?g|gif|bmp|tif?f|svg)$/i, '.webp');
27
24
  }
28
25
  /**
29
- * If the input is an image, transcode to WebP (capped + re-encoded) and
30
- * return rewritten bytes/content-type/path. Non-images pass through, so
26
+ * Transcodes images to WebP; passes non-images through unchanged, so
31
27
  * providers can call this unconditionally before `put`.
32
28
  *
33
- * Throws if `sharp` isn't installed — that's a config error, not a fallback.
29
+ * Throws if `sharp` isn't installed — a config error, not a fallback.
34
30
  */
35
31
  export async function transcodeImageIfNeeded(data, contentType, storagePath) {
36
32
  if (!isImageUpload(contentType, storagePath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/storage/image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AASrC,4FAA4F;AAC5F,MAAM,UAAU,aAAa,CAAC,WAA+B,EAAE,WAAmB;IACjF,IAAI,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,wCAAwC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC7C,OAAO,WAAW,CAAC,OAAO,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,IAAgB,EAChB,WAA+B,EAC/B,WAAmB;IAEnB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,IAAI,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC5F,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C,MAAM,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;SAC5D,IAAI,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;SACrC,QAAQ,EAAE,CAAC;IAEb,OAAO;QACN,IAAI,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;QAChC,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;KAC7B,CAAC;AACH,CAAC;AAMD,IAAI,WAAW,GAAmB,IAAI,CAAC;AAEvC,KAAK,UAAU,SAAS;IACvB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAoC,CAAC;QACvE,WAAW,GAAG,GAAG,CAAC,OAAO,IAAK,GAA0B,CAAC;QACzD,OAAO,WAAW,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,sGAAsG,EACtG,EAAE,KAAK,EAAE,GAAY,EAAE,CACvB,CAAC;IACH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/storage/image.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AASrC,4FAA4F;AAC5F,MAAM,UAAU,aAAa,CAAC,WAA+B,EAAE,WAAmB;IACjF,IAAI,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,wCAAwC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC7C,OAAO,WAAW,CAAC,OAAO,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,IAAgB,EAChB,WAA+B,EAC/B,WAAmB;IAEnB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,IAAI,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC5F,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C,MAAM,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;SAC5D,IAAI,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;SACrC,QAAQ,EAAE,CAAC;IAEb,OAAO;QACN,IAAI,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;QAChC,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;KAC7B,CAAC;AACH,CAAC;AAMD,IAAI,WAAW,GAAmB,IAAI,CAAC;AAEvC,KAAK,UAAU,SAAS;IACvB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAoC,CAAC;QACvE,WAAW,GAAG,GAAG,CAAC,OAAO,IAAK,GAA0B,CAAC;QACzD,OAAO,WAAW,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,sGAAsG,EACtG,EAAE,KAAK,EAAE,GAAY,EAAE,CACvB,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -6,7 +6,7 @@ import type { RecentRun, UserProfile } from './types.js';
6
6
  * providers (Entra, Supabase Auth) don't have to model fields they can't
7
7
  * persist.
8
8
  *
9
- * Adapters MUST scope by `ctx`: a caller cannot read or modify another
9
+ * Adapters must scope by `ctx`: a caller cannot read or modify another
10
10
  * user's profile via the `userId` argument. SQL adapters delegate to RLS;
11
11
  * document-store adapters check `ctx.userId === userId` (or
12
12
  * `instance_admin` for admin tooling). Pass `SYSTEM_CONTEXT` for trusted
@@ -4,11 +4,7 @@ export interface RecentRun {
4
4
  definitionName: string;
5
5
  timestamp: string;
6
6
  }
7
- /**
8
- * Mutable per-user profile state. Owned by `IUserProfileStore` so OIDC
9
- * providers (Supabase Auth, Entra, Firebase) don't have to model fields they
10
- * can't persist — identity from the IdP, profile state from your DB.
11
- */
7
+ /** Mutable per-user profile state, owned by `IUserProfileStore`. */
12
8
  export interface UserProfile {
13
9
  userId: string;
14
10
  displayName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/userProfile/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,8DAA8D;IAC9D,UAAU,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAExD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/userProfile/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,8DAA8D;IAC9D,UAAU,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAExD"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/userProfile/types.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,YAAY,CAAC,MAAc;IAC1C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/userProfile/types.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,YAAY,CAAC,MAAc;IAC1C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@selvajs/platform",
3
- "version": "0.16.1-beta.2",
3
+ "version": "0.17.0",
4
4
  "description": "Pure TypeScript interfaces for Selva platform providers (auth, definitions, compute)",
5
5
  "license": "MIT",
6
6
  "author": "VektorNode",
@@ -22,7 +22,7 @@
22
22
  "directory": "packages/platform"
23
23
  },
24
24
  "engines": {
25
- "node": ">=22.0.0"
25
+ "node": ">=24.0.0"
26
26
  },
27
27
  "type": "module",
28
28
  "main": "./dist/index.js",
@@ -122,7 +122,7 @@
122
122
  ],
123
123
  "dependencies": {
124
124
  "zod": "^4.3.6",
125
- "@selvajs/schemas": "^5.0.0-beta.2"
125
+ "@selvajs/schemas": "^5.0.0"
126
126
  },
127
127
  "peerDependencies": {
128
128
  "sharp": "^0.34.0 || ^0.35.0",
@@ -140,7 +140,7 @@
140
140
  "sharp": "^0.35.3",
141
141
  "typescript": "~6.0.3",
142
142
  "vitest": "^4.1.10",
143
- "@selvajs/config": "0.0.3"
143
+ "@selvajs/config": "0.0.4"
144
144
  },
145
145
  "scripts": {
146
146
  "build": "tsc",