@prabhask5/stellar-engine 1.1.5 → 1.1.6

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 (50) hide show
  1. package/README.md +1 -0
  2. package/dist/entries/kit.d.ts +10 -0
  3. package/dist/entries/kit.d.ts.map +1 -0
  4. package/dist/entries/kit.js +9 -0
  5. package/dist/entries/kit.js.map +1 -0
  6. package/dist/entries/types.d.ts +1 -1
  7. package/dist/entries/types.d.ts.map +1 -1
  8. package/dist/entries/utils.d.ts +1 -1
  9. package/dist/entries/utils.d.ts.map +1 -1
  10. package/dist/entries/utils.js +1 -1
  11. package/dist/entries/utils.js.map +1 -1
  12. package/dist/index.d.ts +2 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/kit/authPresets.d.ts +28 -0
  17. package/dist/kit/authPresets.d.ts.map +1 -0
  18. package/dist/kit/authPresets.js +23 -0
  19. package/dist/kit/authPresets.js.map +1 -0
  20. package/dist/kit/configEndpoint.d.ts +18 -0
  21. package/dist/kit/configEndpoint.d.ts.map +1 -0
  22. package/dist/kit/configEndpoint.js +27 -0
  23. package/dist/kit/configEndpoint.js.map +1 -0
  24. package/dist/kit/deployEndpoint.d.ts +22 -0
  25. package/dist/kit/deployEndpoint.d.ts.map +1 -0
  26. package/dist/kit/deployEndpoint.js +79 -0
  27. package/dist/kit/deployEndpoint.js.map +1 -0
  28. package/dist/kit/layoutLoad.d.ts +23 -0
  29. package/dist/kit/layoutLoad.d.ts.map +1 -0
  30. package/dist/kit/layoutLoad.js +41 -0
  31. package/dist/kit/layoutLoad.js.map +1 -0
  32. package/dist/kit/protectedLoad.d.ts +16 -0
  33. package/dist/kit/protectedLoad.d.ts.map +1 -0
  34. package/dist/kit/protectedLoad.js +28 -0
  35. package/dist/kit/protectedLoad.js.map +1 -0
  36. package/dist/kit/setupLoad.d.ts +11 -0
  37. package/dist/kit/setupLoad.d.ts.map +1 -0
  38. package/dist/kit/setupLoad.js +28 -0
  39. package/dist/kit/setupLoad.js.map +1 -0
  40. package/dist/kit/validateEndpoint.d.ts +9 -0
  41. package/dist/kit/validateEndpoint.d.ts.map +1 -0
  42. package/dist/kit/validateEndpoint.js +25 -0
  43. package/dist/kit/validateEndpoint.js.map +1 -0
  44. package/dist/kit/vercelApi.d.ts +6 -0
  45. package/dist/kit/vercelApi.d.ts.map +1 -0
  46. package/dist/kit/vercelApi.js +48 -0
  47. package/dist/kit/vercelApi.js.map +1 -0
  48. package/dist/types.d.ts +19 -0
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +11 -2
package/README.md CHANGED
@@ -145,6 +145,7 @@ Import only what you need via subpath exports:
145
145
  | `@prabhask5/stellar-engine/utils` | Utility functions (`generateId`, `now`, `calculateNewOrder`, `snakeToCamel`, `debug`, etc.) |
146
146
  | `@prabhask5/stellar-engine/actions` | Svelte `use:` actions (`remoteChangeAnimation`, `trackEditing`, `triggerLocalAnimation`) |
147
147
  | `@prabhask5/stellar-engine/config` | Runtime config (`initConfig`, `getConfig`, `setConfig`, `getDexieTableFor`) |
148
+ | `@prabhask5/stellar-engine/crdt` | CRDT document lifecycle, realtime sync, awareness/presence, offline cache |
148
149
  | `@prabhask5/stellar-engine/email` | Email sending (`sendEmail`, `validateSmtpCredentials`) |
149
150
 
150
151
  The root export (`@prabhask5/stellar-engine`) re-exports everything for backward compatibility.
@@ -0,0 +1,10 @@
1
+ export { createConfigEndpoint } from '../kit/configEndpoint.js';
2
+ export { createValidateEndpoint } from '../kit/validateEndpoint.js';
3
+ export { createDeployEndpoint } from '../kit/deployEndpoint.js';
4
+ export { createLayoutLoad } from '../kit/layoutLoad.js';
5
+ export type { LayoutData } from '../kit/layoutLoad.js';
6
+ export { createSetupLoad } from '../kit/setupLoad.js';
7
+ export { createProtectedLoad } from '../kit/protectedLoad.js';
8
+ export type { ProtectedLayoutData } from '../kit/protectedLoad.js';
9
+ export { vercelApi, setEnvVar } from '../kit/vercelApi.js';
10
+ //# sourceMappingURL=kit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../../src/entries/kit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Kit - SvelteKit endpoint factories, load functions, and presets
2
+ export { createConfigEndpoint } from '../kit/configEndpoint.js';
3
+ export { createValidateEndpoint } from '../kit/validateEndpoint.js';
4
+ export { createDeployEndpoint } from '../kit/deployEndpoint.js';
5
+ export { createLayoutLoad } from '../kit/layoutLoad.js';
6
+ export { createSetupLoad } from '../kit/setupLoad.js';
7
+ export { createProtectedLoad } from '../kit/protectedLoad.js';
8
+ export { vercelApi, setEnvVar } from '../kit/vercelApi.js';
9
+ //# sourceMappingURL=kit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/entries/kit.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC"}
@@ -4,7 +4,7 @@ export type { BatchOperation } from '../data';
4
4
  export type { AuthResponse } from '../supabase/auth';
5
5
  export type { AuthStateResult } from '../auth/resolveAuthState';
6
6
  export type { AppConfig } from '../runtime/runtimeConfig';
7
- export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType } from '../types';
7
+ export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType, SyncableEntity, UserOwnedEntity } from '../types';
8
8
  export type { SyncError, RealtimeState } from '../stores/sync';
9
9
  export type { RemoteActionType } from '../stores/remoteChanges';
10
10
  export type { Session } from '@supabase/supabase-js';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entries/types.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entries/types.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { generateId, now, calculateNewOrder, snakeToCamel } from '../utils';
2
- export { debug, isDebugMode, setDebugMode } from '../debug';
2
+ export { debug, debugLog, debugWarn, debugError, isDebugMode, setDebugMode } from '../debug';
3
3
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -1,4 +1,4 @@
1
1
  // Utils subpath barrel – @prabhask5/stellar-engine/utils
2
2
  export { generateId, now, calculateNewOrder, snakeToCamel } from '../utils';
3
- export { debug, isDebugMode, setDebugMode } from '../debug';
3
+ export { debug, debugLog, debugWarn, debugError, isDebugMode, setDebugMode } from '../debug';
4
4
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.d.ts CHANGED
@@ -26,10 +26,10 @@ export { onRealtimeDataUpdate } from './realtime';
26
26
  export { supabase } from './supabase/client';
27
27
  export { initConfig, getConfig, setConfig } from './runtime/runtimeConfig';
28
28
  export type { AppConfig } from './runtime/runtimeConfig';
29
- export { debug, isDebugMode, setDebugMode } from './debug';
29
+ export { debug, debugLog, debugWarn, debugError, isDebugMode, setDebugMode } from './debug';
30
30
  export { generateId, now, calculateNewOrder, snakeToCamel } from './utils';
31
31
  export { remoteChangeAnimation, trackEditing, triggerLocalAnimation } from './actions/remoteChange';
32
- export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType, TrustedDevice } from './types';
32
+ export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType, TrustedDevice, SyncableEntity, UserOwnedEntity } from './types';
33
33
  export type { Session } from '@supabase/supabase-js';
34
34
  export { validateSupabaseCredentials, validateSchema } from './supabase/validate';
35
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -35,7 +35,7 @@ export { supabase } from './supabase/client';
35
35
  // Runtime config
36
36
  export { initConfig, getConfig, setConfig } from './runtime/runtimeConfig';
37
37
  // Debug
38
- export { debug, isDebugMode, setDebugMode } from './debug';
38
+ export { debug, debugLog, debugWarn, debugError, isDebugMode, setDebugMode } from './debug';
39
39
  // Utilities
40
40
  export { generateId, now, calculateNewOrder, snakeToCamel } from './utils';
41
41
  // Svelte actions
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,WAAW;AACX,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGlD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,0BAA0B;AAC1B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EAChB,MAAM,QAAQ,CAAC;AAGhB,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEnG,OAAO;AACP,OAAO,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,QAAQ;AACR,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,MAAM,EACN,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAEnC,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjF,0DAA0D;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG3E,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3D,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3E,iBAAiB;AACjB,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAmBpG,2DAA2D;AAC3D,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,WAAW;AACX,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGlD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,0BAA0B;AAC1B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EAChB,MAAM,QAAQ,CAAC;AAGhB,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEnG,OAAO;AACP,OAAO,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,QAAQ;AACR,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,MAAM,EACN,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAEnC,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjF,0DAA0D;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG3E,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5F,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3E,iBAAiB;AACjB,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAqBpG,2DAA2D;AAC3D,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Default auth configuration presets shared across apps.
3
+ */
4
+ export declare const defaultSingleUserAuthConfig: {
5
+ mode: "single-user";
6
+ singleUser: {
7
+ gateType: "code";
8
+ codeLength: 6;
9
+ };
10
+ emailConfirmation: {
11
+ enabled: boolean;
12
+ };
13
+ deviceVerification: {
14
+ enabled: boolean;
15
+ trustDurationDays: number;
16
+ };
17
+ confirmRedirectPath: string;
18
+ profileExtractor: (meta: Record<string, unknown>) => {
19
+ firstName: string;
20
+ lastName: string;
21
+ };
22
+ profileToMetadata: (p: Record<string, unknown>) => {
23
+ first_name: unknown;
24
+ last_name: unknown;
25
+ };
26
+ enableOfflineAuth: boolean;
27
+ };
28
+ //# sourceMappingURL=authPresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authPresets.d.ts","sourceRoot":"","sources":["../../src/kit/authPresets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;6BASb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;2BAIzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;CAK/C,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Default auth configuration presets shared across apps.
3
+ */
4
+ export const defaultSingleUserAuthConfig = {
5
+ mode: 'single-user',
6
+ singleUser: {
7
+ gateType: 'code',
8
+ codeLength: 6
9
+ },
10
+ emailConfirmation: { enabled: true },
11
+ deviceVerification: { enabled: true, trustDurationDays: 90 },
12
+ confirmRedirectPath: '/confirm',
13
+ profileExtractor: (meta) => ({
14
+ firstName: meta.first_name || '',
15
+ lastName: meta.last_name || ''
16
+ }),
17
+ profileToMetadata: (p) => ({
18
+ first_name: p.firstName,
19
+ last_name: p.lastName
20
+ }),
21
+ enableOfflineAuth: true
22
+ };
23
+ //# sourceMappingURL=authPresets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authPresets.js","sourceRoot":"","sources":["../../src/kit/authPresets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,aAAsB;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAe;QACzB,UAAU,EAAE,CAAU;KACvB;IACD,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACpC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE;IAC5D,mBAAmB,EAAE,UAAU;IAC/B,gBAAgB,EAAE,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAC;QACpD,SAAS,EAAG,IAAI,CAAC,UAAqB,IAAI,EAAE;QAC5C,QAAQ,EAAG,IAAI,CAAC,SAAoB,IAAI,EAAE;KAC3C,CAAC;IACF,iBAAiB,EAAE,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC;QAClD,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,SAAS,EAAE,CAAC,CAAC,QAAQ;KACtB,CAAC;IACF,iBAAiB,EAAE,IAAI;CACxB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Factory for the /api/config GET endpoint.
3
+ *
4
+ * Returns Supabase URL and anon key from environment variables.
5
+ * Optionally checks additional env vars (e.g., SMTP config).
6
+ */
7
+ interface ConfigEndpointOptions {
8
+ /** Additional environment variables to check and include in the response. */
9
+ extraChecks?: Array<{
10
+ /** Key to use in the JSON response */
11
+ responseKey: string;
12
+ /** Environment variable names to check — all must be set for the check to pass */
13
+ envKeys: string[];
14
+ }>;
15
+ }
16
+ export declare function createConfigEndpoint(options?: ConfigEndpointOptions): () => Promise<Response>;
17
+ export {};
18
+ //# sourceMappingURL=configEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configEndpoint.d.ts","sourceRoot":"","sources":["../../src/kit/configEndpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU,qBAAqB;IAC7B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,sCAAsC;QACtC,WAAW,EAAE,MAAM,CAAC;QACpB,kFAAkF;QAClF,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,qBAAqB,2BA6BnE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Factory for the /api/config GET endpoint.
3
+ *
4
+ * Returns Supabase URL and anon key from environment variables.
5
+ * Optionally checks additional env vars (e.g., SMTP config).
6
+ */
7
+ export function createConfigEndpoint(options) {
8
+ return async () => {
9
+ const supabaseUrl = process.env.PUBLIC_SUPABASE_URL || '';
10
+ const supabaseAnonKey = process.env.PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY || '';
11
+ const extras = {};
12
+ if (options?.extraChecks) {
13
+ for (const check of options.extraChecks) {
14
+ extras[check.responseKey] = check.envKeys.every((k) => !!(process.env[k]));
15
+ }
16
+ }
17
+ if (supabaseUrl && supabaseAnonKey) {
18
+ return new Response(JSON.stringify({ configured: true, supabaseUrl, supabaseAnonKey, ...extras }), { headers: { 'Content-Type': 'application/json' } });
19
+ }
20
+ const falseExtras = {};
21
+ for (const key of Object.keys(extras)) {
22
+ falseExtras[key] = false;
23
+ }
24
+ return new Response(JSON.stringify({ configured: false, ...falseExtras }), { headers: { 'Content-Type': 'application/json' } });
25
+ };
26
+ }
27
+ //# sourceMappingURL=configEndpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configEndpoint.js","sourceRoot":"","sources":["../../src/kit/configEndpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,UAAU,oBAAoB,CAAC,OAA+B;IAClE,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,EAAE,CAAC;QAElF,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;YACnC,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAAC,EAC7E,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CACpD,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAA4B,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC,EACrD,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CACpD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Factory for the /api/setup/deploy POST endpoint.
3
+ *
4
+ * Sets Supabase environment variables in Vercel and triggers a redeployment.
5
+ */
6
+ interface AdditionalEnvVar {
7
+ /** Key in the request body JSON */
8
+ bodyKey: string;
9
+ /** Vercel environment variable name */
10
+ envKey: string;
11
+ /** Vercel env var type: 'plain' (default) or 'encrypted' */
12
+ type?: 'plain' | 'encrypted';
13
+ }
14
+ interface DeployEndpointOptions {
15
+ /** Additional environment variables to set from the request body. */
16
+ additionalEnvVars?: AdditionalEnvVar[];
17
+ }
18
+ export declare function createDeployEndpoint(options?: DeployEndpointOptions): ({ request }: {
19
+ request: Request;
20
+ }) => Promise<Response>;
21
+ export {};
22
+ //# sourceMappingURL=deployEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployEndpoint.d.ts","sourceRoot":"","sources":["../../src/kit/deployEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,UAAU,gBAAgB;IACxB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CAC9B;AAED,UAAU,qBAAqB;IAC7B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,qBAAqB,IACpD,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,uBAuGhD"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Factory for the /api/setup/deploy POST endpoint.
3
+ *
4
+ * Sets Supabase environment variables in Vercel and triggers a redeployment.
5
+ */
6
+ import { vercelApi, setEnvVar } from './vercelApi.js';
7
+ export function createDeployEndpoint(options) {
8
+ return async ({ request }) => {
9
+ try {
10
+ const body = await request.json();
11
+ const { supabaseUrl, supabaseAnonKey, vercelToken } = body;
12
+ if (!supabaseUrl || !supabaseAnonKey || !vercelToken) {
13
+ return new Response(JSON.stringify({
14
+ success: false,
15
+ error: 'Supabase URL, Anon Key, and Vercel Token are required'
16
+ }), { status: 400, headers: { 'Content-Type': 'application/json' } });
17
+ }
18
+ const projectId = process.env.VERCEL_PROJECT_ID;
19
+ if (!projectId) {
20
+ return new Response(JSON.stringify({
21
+ success: false,
22
+ error: 'VERCEL_PROJECT_ID not found. This endpoint only works on Vercel deployments.'
23
+ }), { status: 400, headers: { 'Content-Type': 'application/json' } });
24
+ }
25
+ // Set core env vars
26
+ await setEnvVar(projectId, vercelToken, 'PUBLIC_SUPABASE_URL', supabaseUrl);
27
+ await setEnvVar(projectId, vercelToken, 'PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY', supabaseAnonKey);
28
+ // Set additional env vars if provided
29
+ if (options?.additionalEnvVars) {
30
+ for (const envVar of options.additionalEnvVars) {
31
+ const value = body[envVar.bodyKey];
32
+ if (value !== undefined && value !== null && value !== '') {
33
+ await setEnvVar(projectId, vercelToken, envVar.envKey, String(value), envVar.type || 'plain');
34
+ }
35
+ }
36
+ }
37
+ // Trigger redeployment
38
+ const deploymentId = process.env.VERCEL_DEPLOYMENT_ID || process.env.VERCEL_URL;
39
+ const gitRepo = process.env.VERCEL_GIT_REPO_SLUG;
40
+ const gitOwner = process.env.VERCEL_GIT_REPO_OWNER;
41
+ const gitRef = process.env.VERCEL_GIT_COMMIT_REF || 'main';
42
+ let deploymentUrl = '';
43
+ if (gitRepo && gitOwner) {
44
+ const deployRes = await vercelApi(`/v13/deployments`, vercelToken, 'POST', {
45
+ name: projectId,
46
+ project: projectId,
47
+ target: 'production',
48
+ gitSource: {
49
+ type: 'github',
50
+ repoId: `${gitOwner}/${gitRepo}`,
51
+ ref: gitRef
52
+ }
53
+ });
54
+ if (deployRes.ok) {
55
+ const deployData = await deployRes.json();
56
+ deploymentUrl = deployData.url || '';
57
+ }
58
+ }
59
+ if (!deploymentUrl && deploymentId) {
60
+ const redeployRes = await vercelApi(`/v13/deployments`, vercelToken, 'POST', {
61
+ name: projectId,
62
+ project: projectId,
63
+ target: 'production',
64
+ deploymentId
65
+ });
66
+ if (redeployRes.ok) {
67
+ const redeployData = await redeployRes.json();
68
+ deploymentUrl = redeployData.url || '';
69
+ }
70
+ }
71
+ return new Response(JSON.stringify({ success: true, deploymentUrl }), { headers: { 'Content-Type': 'application/json' } });
72
+ }
73
+ catch (e) {
74
+ const message = e instanceof Error ? e.message : 'Unknown error';
75
+ return new Response(JSON.stringify({ success: false, error: message }), { headers: { 'Content-Type': 'application/json' } });
76
+ }
77
+ };
78
+ }
79
+ //# sourceMappingURL=deployEndpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployEndpoint.js","sourceRoot":"","sources":["../../src/kit/deployEndpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Factory for the root +layout.ts load function.
3
+ *
4
+ * Handles config initialization, auth state resolution, and sync engine startup.
5
+ */
6
+ import type { AuthMode, OfflineCredentials } from '../types.js';
7
+ import type { Session } from '@supabase/supabase-js';
8
+ export interface LayoutData {
9
+ session: Session | null;
10
+ authMode: AuthMode;
11
+ offlineProfile: OfflineCredentials | null;
12
+ singleUserSetUp?: boolean;
13
+ }
14
+ /**
15
+ * Creates the standard layout load function that:
16
+ * 1. Checks if the app is configured (redirects to /setup if not)
17
+ * 2. Resolves auth state
18
+ * 3. Starts the sync engine if authenticated
19
+ */
20
+ export declare function createLayoutLoad(): ({ url }: {
21
+ url: URL;
22
+ }) => Promise<LayoutData>;
23
+ //# sourceMappingURL=layoutLoad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutLoad.d.ts","sourceRoot":"","sources":["../../src/kit/layoutLoad.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD;;;;;GAKG;AACH,wBAAgB,gBAAgB,KAChB,SAAS;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,KAAG,OAAO,CAAC,UAAU,CAAC,CAyB1D"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Factory for the root +layout.ts load function.
3
+ *
4
+ * Handles config initialization, auth state resolution, and sync engine startup.
5
+ */
6
+ const DEFAULT_RESULT = {
7
+ session: null,
8
+ authMode: 'none',
9
+ offlineProfile: null,
10
+ singleUserSetUp: false
11
+ };
12
+ /**
13
+ * Creates the standard layout load function that:
14
+ * 1. Checks if the app is configured (redirects to /setup if not)
15
+ * 2. Resolves auth state
16
+ * 3. Starts the sync engine if authenticated
17
+ */
18
+ export function createLayoutLoad() {
19
+ return async ({ url }) => {
20
+ if (typeof window === 'undefined')
21
+ return DEFAULT_RESULT;
22
+ // Dynamic imports to avoid SSR issues
23
+ const { initConfig } = await import('../runtime/runtimeConfig.js');
24
+ const { resolveAuthState } = await import('../auth/resolveAuthState.js');
25
+ const { startSyncEngine } = await import('../engine.js');
26
+ const config = await initConfig();
27
+ if (!config && url.pathname !== '/setup') {
28
+ const { redirect } = await import('@sveltejs/kit');
29
+ throw redirect(307, '/setup');
30
+ }
31
+ if (!config) {
32
+ return DEFAULT_RESULT;
33
+ }
34
+ const result = await resolveAuthState();
35
+ if (result.authMode !== 'none') {
36
+ await startSyncEngine();
37
+ }
38
+ return result;
39
+ };
40
+ }
41
+ //# sourceMappingURL=layoutLoad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutLoad.js","sourceRoot":"","sources":["../../src/kit/layoutLoad.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,MAAM,cAAc,GAAe;IACjC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,EAAE,EAAE,GAAG,EAAgB,EAAuB,EAAE;QAC1D,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,cAAc,CAAC;QAEzD,sCAAsC;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACnE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACzE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Factory for the (protected)/+layout.ts load function.
3
+ *
4
+ * Redirects unauthenticated users to /login with return URL.
5
+ */
6
+ import type { AuthMode, OfflineCredentials } from '../types.js';
7
+ import type { Session } from '@supabase/supabase-js';
8
+ export interface ProtectedLayoutData {
9
+ session: Session | null;
10
+ authMode: AuthMode;
11
+ offlineProfile: OfflineCredentials | null;
12
+ }
13
+ export declare function createProtectedLoad(): ({ url }: {
14
+ url: URL;
15
+ }) => Promise<ProtectedLayoutData>;
16
+ //# sourceMappingURL=protectedLoad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protectedLoad.d.ts","sourceRoot":"","sources":["../../src/kit/protectedLoad.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAQD,wBAAgB,mBAAmB,KACnB,SAAS;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,KAAG,OAAO,CAAC,mBAAmB,CAAC,CAkBnE"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Factory for the (protected)/+layout.ts load function.
3
+ *
4
+ * Redirects unauthenticated users to /login with return URL.
5
+ */
6
+ const DEFAULT_RESULT = {
7
+ session: null,
8
+ authMode: 'none',
9
+ offlineProfile: null
10
+ };
11
+ export function createProtectedLoad() {
12
+ return async ({ url }) => {
13
+ if (typeof window === 'undefined')
14
+ return DEFAULT_RESULT;
15
+ const { resolveAuthState } = await import('../auth/resolveAuthState.js');
16
+ const result = await resolveAuthState();
17
+ if (result.authMode === 'none') {
18
+ const { redirect } = await import('@sveltejs/kit');
19
+ const returnUrl = url.pathname + url.search;
20
+ const loginUrl = returnUrl && returnUrl !== '/'
21
+ ? `/login?redirect=${encodeURIComponent(returnUrl)}`
22
+ : '/login';
23
+ throw redirect(302, loginUrl);
24
+ }
25
+ return result;
26
+ };
27
+ }
28
+ //# sourceMappingURL=protectedLoad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protectedLoad.js","sourceRoot":"","sources":["../../src/kit/protectedLoad.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,cAAc,GAAwB;IAC1C,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,EAAE,EAAE,GAAG,EAAgB,EAAgC,EAAE;QACnE,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,cAAc,CAAC;QAEzD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAExC,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;YAC5C,MAAM,QAAQ,GACZ,SAAS,IAAI,SAAS,KAAK,GAAG;gBAC5B,CAAC,CAAC,mBAAmB,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBACpD,CAAC,CAAC,QAAQ,CAAC;YACf,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Factory for the /setup +page.ts load function.
3
+ *
4
+ * Access control: if unconfigured, allow anyone. If configured, require admin.
5
+ */
6
+ export declare function createSetupLoad(): () => Promise<{
7
+ isFirstSetup?: undefined;
8
+ } | {
9
+ isFirstSetup: boolean;
10
+ }>;
11
+ //# sourceMappingURL=setupLoad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupLoad.d.ts","sourceRoot":"","sources":["../../src/kit/setupLoad.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,eAAe;;;;GAyB9B"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Factory for the /setup +page.ts load function.
3
+ *
4
+ * Access control: if unconfigured, allow anyone. If configured, require admin.
5
+ */
6
+ export function createSetupLoad() {
7
+ return async () => {
8
+ if (typeof window === 'undefined')
9
+ return {};
10
+ const { getConfig } = await import('../runtime/runtimeConfig.js');
11
+ const { getValidSession } = await import('../supabase/auth.js');
12
+ if (!getConfig()) {
13
+ return { isFirstSetup: true };
14
+ }
15
+ const session = await getValidSession();
16
+ if (!session?.user) {
17
+ const { redirect } = await import('@sveltejs/kit');
18
+ throw redirect(307, '/login');
19
+ }
20
+ const { isAdmin } = await import('../auth/admin.js');
21
+ if (!isAdmin(session.user)) {
22
+ const { redirect } = await import('@sveltejs/kit');
23
+ throw redirect(307, '/');
24
+ }
25
+ return { isFirstSetup: false };
26
+ };
27
+ }
28
+ //# sourceMappingURL=setupLoad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupLoad.js","sourceRoot":"","sources":["../../src/kit/setupLoad.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QAE7C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAClE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEhE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Factory for the /api/setup/validate POST endpoint.
3
+ *
4
+ * Tests Supabase credentials connectivity.
5
+ */
6
+ export declare function createValidateEndpoint(): ({ request }: {
7
+ request: Request;
8
+ }) => Promise<Response>;
9
+ //# sourceMappingURL=validateEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateEndpoint.d.ts","sourceRoot":"","sources":["../../src/kit/validateEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wBAAgB,sBAAsB,KACtB,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,uBAuBhD"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Factory for the /api/setup/validate POST endpoint.
3
+ *
4
+ * Tests Supabase credentials connectivity.
5
+ */
6
+ import { validateSupabaseCredentials } from '../supabase/validate.js';
7
+ export function createValidateEndpoint() {
8
+ return async ({ request }) => {
9
+ try {
10
+ const { supabaseUrl, supabaseAnonKey } = await request.json();
11
+ if (!supabaseUrl || !supabaseAnonKey) {
12
+ return new Response(JSON.stringify({ valid: false, error: 'Supabase URL and Anon Key are required' }), { status: 400, headers: { 'Content-Type': 'application/json' } });
13
+ }
14
+ const result = await validateSupabaseCredentials(supabaseUrl, supabaseAnonKey);
15
+ return new Response(JSON.stringify(result), {
16
+ headers: { 'Content-Type': 'application/json' }
17
+ });
18
+ }
19
+ catch (e) {
20
+ const message = e instanceof Error ? e.message : 'Unknown error';
21
+ return new Response(JSON.stringify({ valid: false, error: `Could not connect to Supabase: ${message}` }), { headers: { 'Content-Type': 'application/json' } });
22
+ }
23
+ };
24
+ }
25
+ //# sourceMappingURL=validateEndpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateEndpoint.js","sourceRoot":"","sources":["../../src/kit/validateEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAwB,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAE9D,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC,EACjF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CACjE,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAC/E,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC1C,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAChD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,OAAO,EAAE,EAAE,CAAC,EACpF,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CACpD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Vercel API utilities for deploy endpoints.
3
+ */
4
+ export declare function vercelApi(path: string, token: string, method?: string, body?: unknown): Promise<Response>;
5
+ export declare function setEnvVar(projectId: string, token: string, key: string, value: string, envType?: string): Promise<void>;
6
+ //# sourceMappingURL=vercelApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercelApi.d.ts","sourceRoot":"","sources":["../../src/kit/vercelApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,SAAQ,EACd,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,SAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAwCf"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Vercel API utilities for deploy endpoints.
3
+ */
4
+ export async function vercelApi(path, token, method = 'GET', body) {
5
+ const res = await fetch(`https://api.vercel.com${path}`, {
6
+ method,
7
+ headers: {
8
+ Authorization: `Bearer ${token}`,
9
+ 'Content-Type': 'application/json'
10
+ },
11
+ body: body ? JSON.stringify(body) : undefined
12
+ });
13
+ return res;
14
+ }
15
+ export async function setEnvVar(projectId, token, key, value, envType = 'plain') {
16
+ const createRes = await vercelApi(`/v10/projects/${projectId}/env`, token, 'POST', {
17
+ key,
18
+ value,
19
+ target: ['production', 'preview', 'development'],
20
+ type: envType
21
+ });
22
+ if (createRes.ok)
23
+ return;
24
+ const createData = await createRes.json();
25
+ const errorCode = createData.error?.code || '';
26
+ const errorMessage = createData.error?.message || '';
27
+ if (errorCode === 'ENV_ALREADY_EXISTS' || errorMessage.includes('already exists')) {
28
+ const listRes = await vercelApi(`/v9/projects/${projectId}/env`, token);
29
+ if (!listRes.ok) {
30
+ throw new Error(`Failed to list env vars: ${listRes.statusText}`);
31
+ }
32
+ const listData = await listRes.json();
33
+ const existing = listData.envs?.find((e) => e.key === key);
34
+ if (existing) {
35
+ const updateRes = await vercelApi(`/v9/projects/${projectId}/env/${existing.id}`, token, 'PATCH', { value });
36
+ if (!updateRes.ok) {
37
+ throw new Error(`Failed to update env var ${key}: ${updateRes.statusText}`);
38
+ }
39
+ }
40
+ else {
41
+ throw new Error(`Env var ${key} reported as existing but not found in list`);
42
+ }
43
+ }
44
+ else {
45
+ throw new Error(`Failed to create env var ${key}: ${createData.error?.message || createRes.statusText}`);
46
+ }
47
+ }
48
+ //# sourceMappingURL=vercelApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercelApi.js","sourceRoot":"","sources":["../../src/kit/vercelApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAY,EACZ,KAAa,EACb,MAAM,GAAG,KAAK,EACd,IAAc;IAEd,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,yBAAyB,IAAI,EAAE,EAAE;QACvD,MAAM;QACN,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,KAAa,EACb,GAAW,EACX,KAAa,EACb,OAAO,GAAG,OAAO;IAEjB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,iBAAiB,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;QACjF,GAAG;QACH,KAAK;QACL,MAAM,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC;QAChD,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,EAAE;QAAE,OAAO;IAEzB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAE1C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IACrD,IAAI,SAAS,KAAK,oBAAoB,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,gBAAgB,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEzE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,MAAM,SAAS,CAC/B,gBAAgB,SAAS,QAAQ,QAAQ,CAAC,EAAE,EAAE,EAC9C,KAAK,EACL,OAAO,EACP,EAAE,KAAK,EAAE,CACV,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,6CAA6C,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,4BAA4B,GAAG,KAAK,UAAU,CAAC,KAAK,EAAE,OAAO,IAAI,SAAS,CAAC,UAAU,EAAE,CACxF,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -96,4 +96,23 @@ export interface TrustedDevice {
96
96
  trustedAt: string;
97
97
  lastUsedAt: string;
98
98
  }
99
+ /**
100
+ * Base interface for all syncable entities.
101
+ * Every entity managed by the sync engine has these fields.
102
+ */
103
+ export interface SyncableEntity {
104
+ id: string;
105
+ created_at: string;
106
+ updated_at: string;
107
+ deleted?: boolean;
108
+ _version?: number;
109
+ device_id?: string | null;
110
+ }
111
+ /**
112
+ * Base interface for entities owned by a user.
113
+ * Extends SyncableEntity with a user_id field.
114
+ */
115
+ export interface UserOwnedEntity extends SyncableEntity {
116
+ user_id: string;
117
+ }
99
118
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CAGnB;AAMD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAMvD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prabhask5/stellar-engine",
3
- "version": "1.1.5",
3
+ "version": "1.1.6",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -44,6 +44,10 @@
44
44
  "./email": {
45
45
  "types": "./dist/entries/email.d.ts",
46
46
  "import": "./dist/entries/email.js"
47
+ },
48
+ "./kit": {
49
+ "types": "./dist/entries/kit.d.ts",
50
+ "import": "./dist/entries/kit.js"
47
51
  }
48
52
  },
49
53
  "files": [
@@ -77,15 +81,20 @@
77
81
  "yjs": "^13.6.20"
78
82
  },
79
83
  "peerDependencies": {
80
- "svelte": "^5.0.0"
84
+ "svelte": "^5.0.0",
85
+ "@sveltejs/kit": "^2.0.0"
81
86
  },
82
87
  "peerDependenciesMeta": {
83
88
  "svelte": {
84
89
  "optional": true
90
+ },
91
+ "@sveltejs/kit": {
92
+ "optional": true
85
93
  }
86
94
  },
87
95
  "devDependencies": {
88
96
  "@eslint/js": "^9.39.2",
97
+ "@sveltejs/kit": "^2.21.0",
89
98
  "@types/nodemailer": "^6.4.0",
90
99
  "eslint": "^9.39.2",
91
100
  "globals": "^17.3.0",