@molecule/app-svelte 1.0.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 (103) hide show
  1. package/LICENSE +115 -0
  2. package/README.md +2032 -0
  3. package/dist/context.d.ts +126 -0
  4. package/dist/context.d.ts.map +1 -0
  5. package/dist/context.js +217 -0
  6. package/dist/context.js.map +1 -0
  7. package/dist/index.d.ts +60 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +60 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/stores/async-state.d.ts +47 -0
  12. package/dist/stores/async-state.d.ts.map +1 -0
  13. package/dist/stores/async-state.js +89 -0
  14. package/dist/stores/async-state.js.map +1 -0
  15. package/dist/stores/auth.d.ts +54 -0
  16. package/dist/stores/auth.d.ts.map +1 -0
  17. package/dist/stores/auth.js +93 -0
  18. package/dist/stores/auth.js.map +1 -0
  19. package/dist/stores/capacitor-app.d.ts +46 -0
  20. package/dist/stores/capacitor-app.d.ts.map +1 -0
  21. package/dist/stores/capacitor-app.js +59 -0
  22. package/dist/stores/capacitor-app.js.map +1 -0
  23. package/dist/stores/change-password.d.ts +17 -0
  24. package/dist/stores/change-password.d.ts.map +1 -0
  25. package/dist/stores/change-password.js +17 -0
  26. package/dist/stores/change-password.js.map +1 -0
  27. package/dist/stores/device.d.ts +39 -0
  28. package/dist/stores/device.d.ts.map +1 -0
  29. package/dist/stores/device.js +51 -0
  30. package/dist/stores/device.js.map +1 -0
  31. package/dist/stores/forms.d.ts +121 -0
  32. package/dist/stores/forms.d.ts.map +1 -0
  33. package/dist/stores/forms.js +178 -0
  34. package/dist/stores/forms.js.map +1 -0
  35. package/dist/stores/http.d.ts +119 -0
  36. package/dist/stores/http.d.ts.map +1 -0
  37. package/dist/stores/http.js +206 -0
  38. package/dist/stores/http.js.map +1 -0
  39. package/dist/stores/i18n.d.ts +50 -0
  40. package/dist/stores/i18n.d.ts.map +1 -0
  41. package/dist/stores/i18n.js +67 -0
  42. package/dist/stores/i18n.js.map +1 -0
  43. package/dist/stores/index.d.ts +27 -0
  44. package/dist/stores/index.d.ts.map +1 -0
  45. package/dist/stores/index.js +27 -0
  46. package/dist/stores/index.js.map +1 -0
  47. package/dist/stores/logger.d.ts +83 -0
  48. package/dist/stores/logger.d.ts.map +1 -0
  49. package/dist/stores/logger.js +104 -0
  50. package/dist/stores/logger.js.map +1 -0
  51. package/dist/stores/login.d.ts +33 -0
  52. package/dist/stores/login.d.ts.map +1 -0
  53. package/dist/stores/login.js +32 -0
  54. package/dist/stores/login.js.map +1 -0
  55. package/dist/stores/oauth.d.ts +74 -0
  56. package/dist/stores/oauth.d.ts.map +1 -0
  57. package/dist/stores/oauth.js +183 -0
  58. package/dist/stores/oauth.js.map +1 -0
  59. package/dist/stores/password-reset.d.ts +31 -0
  60. package/dist/stores/password-reset.d.ts.map +1 -0
  61. package/dist/stores/password-reset.js +26 -0
  62. package/dist/stores/password-reset.js.map +1 -0
  63. package/dist/stores/platform.d.ts +41 -0
  64. package/dist/stores/platform.d.ts.map +1 -0
  65. package/dist/stores/platform.js +44 -0
  66. package/dist/stores/platform.js.map +1 -0
  67. package/dist/stores/promise.d.ts +41 -0
  68. package/dist/stores/promise.d.ts.map +1 -0
  69. package/dist/stores/promise.js +76 -0
  70. package/dist/stores/promise.js.map +1 -0
  71. package/dist/stores/push.d.ts +41 -0
  72. package/dist/stores/push.d.ts.map +1 -0
  73. package/dist/stores/push.js +73 -0
  74. package/dist/stores/push.js.map +1 -0
  75. package/dist/stores/router.d.ts +74 -0
  76. package/dist/stores/router.d.ts.map +1 -0
  77. package/dist/stores/router.js +131 -0
  78. package/dist/stores/router.js.map +1 -0
  79. package/dist/stores/signup.d.ts +18 -0
  80. package/dist/stores/signup.d.ts.map +1 -0
  81. package/dist/stores/signup.js +17 -0
  82. package/dist/stores/signup.js.map +1 -0
  83. package/dist/stores/state.d.ts +62 -0
  84. package/dist/stores/state.d.ts.map +1 -0
  85. package/dist/stores/state.js +74 -0
  86. package/dist/stores/state.js.map +1 -0
  87. package/dist/stores/storage.d.ts +76 -0
  88. package/dist/stores/storage.d.ts.map +1 -0
  89. package/dist/stores/storage.js +159 -0
  90. package/dist/stores/storage.js.map +1 -0
  91. package/dist/stores/theme.d.ts +68 -0
  92. package/dist/stores/theme.d.ts.map +1 -0
  93. package/dist/stores/theme.js +119 -0
  94. package/dist/stores/theme.js.map +1 -0
  95. package/dist/stores/version.d.ts +44 -0
  96. package/dist/stores/version.d.ts.map +1 -0
  97. package/dist/stores/version.js +73 -0
  98. package/dist/stores/version.js.map +1 -0
  99. package/dist/types.d.ts +46 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +7 -0
  102. package/dist/types.js.map +1 -0
  103. package/package.json +59 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Svelte stores for version and update management.
3
+ *
4
+ * @module
5
+ */
6
+ import { derived, readable } from 'svelte/store';
7
+ import { getProvider } from '@molecule/app-version';
8
+ /**
9
+ * Create version stores from the module-level version provider.
10
+ *
11
+ * @returns Version stores and actions
12
+ *
13
+ * @example
14
+ * ```svelte
15
+ * <script>
16
+ * import { createVersionStores } from '@molecule/app-svelte'
17
+ *
18
+ * const { state, isUpdateAvailable, applyUpdate, dismissUpdate } = createVersionStores()
19
+ * </script>
20
+ *
21
+ * {#if $isUpdateAvailable}
22
+ * <div>
23
+ * <p>New version available: {$newVersion}</p>
24
+ * <button on:click={() => applyUpdate()}>Update</button>
25
+ * <button on:click={dismissUpdate}>Dismiss</button>
26
+ * </div>
27
+ * {/if}
28
+ * ```
29
+ */
30
+ export function createVersionStores() {
31
+ const provider = getProvider();
32
+ const events = [
33
+ 'update-available',
34
+ 'service-worker-waiting',
35
+ 'service-worker-activated',
36
+ 'check-start',
37
+ 'check-complete',
38
+ 'check-error',
39
+ ];
40
+ // Main state store — subscribe to all version events
41
+ const state = readable(provider.getState(), (set) => {
42
+ const unsubscribes = events.map((event) => provider.on(event, () => {
43
+ set(provider.getState());
44
+ }));
45
+ return () => {
46
+ unsubscribes.forEach((unsub) => unsub());
47
+ };
48
+ });
49
+ // Derived stores
50
+ const isUpdateAvailable = derived(state, ($state) => $state.isUpdateAvailable);
51
+ const isChecking = derived(state, ($state) => $state.isChecking);
52
+ const isServiceWorkerWaiting = derived(state, ($state) => $state.isServiceWorkerWaiting);
53
+ const newVersion = derived(state, ($state) => $state.newVersion);
54
+ // Actions
55
+ const checkForUpdates = () => provider.checkForUpdates();
56
+ const applyUpdate = (options) => provider.applyUpdate(options);
57
+ const dismissUpdate = () => provider.dismissUpdate();
58
+ const startPeriodicChecks = (options) => provider.startPeriodicChecks(options);
59
+ const stopPeriodicChecks = () => provider.stopPeriodicChecks();
60
+ return {
61
+ state,
62
+ isUpdateAvailable,
63
+ isChecking,
64
+ isServiceWorkerWaiting,
65
+ newVersion,
66
+ checkForUpdates,
67
+ applyUpdate,
68
+ dismissUpdate,
69
+ startPeriodicChecks,
70
+ stopPeriodicChecks,
71
+ };
72
+ }
73
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/stores/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAiB,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB;IAYjC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,MAAM,MAAM,GAAmB;QAC7B,kBAAkB;QAClB,wBAAwB;QACxB,0BAA0B;QAC1B,aAAa;QACb,gBAAgB;QAChB,aAAa;KACd,CAAA;IAED,qDAAqD;IACrD,MAAM,KAAK,GAA2B,QAAQ,CAC5C,QAAQ,CAAC,QAAQ,EAAE,EACnB,CAAC,GAAkC,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACtB,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,CACH,CAAA;QAED,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1C,CAAC,CAAA;IACH,CAAC,CACF,CAAA;IAED,iBAAiB;IACjB,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC5F,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC9E,MAAM,sBAAsB,GAAG,OAAO,CACpC,KAAK,EACL,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CACxD,CAAA;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAE9E,UAAU;IACV,MAAM,eAAe,GAAG,GAAqB,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAA;IAC1E,MAAM,WAAW,GAAG,CAAC,OAA6B,EAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1F,MAAM,aAAa,GAAG,GAAS,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;IAC1D,MAAM,mBAAmB,GAAG,CAAC,OAA4B,EAAQ,EAAE,CACjE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,kBAAkB,GAAG,GAAS,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAA;IAEpE,OAAO;QACL,KAAK;QACL,iBAAiB;QACjB,UAAU;QACV,sBAAsB;QACtB,UAAU;QACV,eAAe;QACf,WAAW;QACX,aAAa;QACb,mBAAmB;QACnB,kBAAkB;KACnB,CAAA;AACH,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Svelte-specific types for molecule.dev framework bindings.
3
+ *
4
+ * @module
5
+ */
6
+ import type { Readable, Writable } from 'svelte/store';
7
+ import type { AuthClient, AuthState } from '@molecule/app-auth';
8
+ import type { FormController, FormOptions } from '@molecule/app-forms';
9
+ import type { HttpClient } from '@molecule/app-http';
10
+ import type { I18nProvider } from '@molecule/app-i18n';
11
+ import type { Logger, LoggerProvider } from '@molecule/app-logger';
12
+ import type { QueryParams, RouteLocation, RouteParams, Router } from '@molecule/app-routing';
13
+ import type { StateProvider, Store as MoleculeStore, StoreConfig } from '@molecule/app-state';
14
+ import type { StorageProvider } from '@molecule/app-storage';
15
+ import type { Theme, ThemeProvider } from '@molecule/app-theme';
16
+ /**
17
+ * Configuration for molecule Svelte context.
18
+ */
19
+ export interface MoleculeConfig {
20
+ state?: StateProvider;
21
+ auth?: AuthClient<unknown>;
22
+ theme?: ThemeProvider;
23
+ router?: Router;
24
+ i18n?: I18nProvider;
25
+ http?: HttpClient;
26
+ storage?: StorageProvider;
27
+ logger?: LoggerProvider;
28
+ }
29
+ /**
30
+ * State for async HTTP operations.
31
+ */
32
+ export interface HttpState<T> {
33
+ data: T | null;
34
+ loading: boolean;
35
+ error: Error | null;
36
+ }
37
+ /**
38
+ * State for async storage values.
39
+ */
40
+ export interface StorageValueState<T> {
41
+ value: T | undefined;
42
+ loading: boolean;
43
+ error: Error | null;
44
+ }
45
+ export type { AuthClient, AuthState, FormController, FormOptions, HttpClient, I18nProvider, Logger, LoggerProvider, MoleculeStore, QueryParams, Readable, RouteLocation, RouteParams, Router, StateProvider, StorageProvider, StoreConfig, Theme, ThemeProvider, Writable, };
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAGD,YAAY,EACV,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,UAAU,EACV,YAAY,EACZ,MAAM,EACN,cAAc,EACd,aAAa,EACb,WAAW,EACX,QAAQ,EACR,aAAa,EACb,WAAW,EACX,MAAM,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,GACT,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Svelte-specific types for molecule.dev framework bindings.
3
+ *
4
+ * @module
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@molecule/app-svelte",
3
+ "version": "1.0.0",
4
+ "description": "Svelte framework bindings for molecule.dev",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "svelte": "dist/index.js",
9
+ "files": [
10
+ "dist",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "dev": "tsc --watch",
16
+ "test": "vitest run",
17
+ "test:watch": "vitest"
18
+ },
19
+ "author": "Molecule Dev, Inc. (https://molecule.dev)",
20
+ "license": "Apache-2.0",
21
+ "engines": {
22
+ "node": ">=20"
23
+ },
24
+ "peerDependencies": {
25
+ "@molecule/app-auth": "^1.0.0",
26
+ "@molecule/app-device": "^1.0.0",
27
+ "@molecule/app-forms": "^1.0.0",
28
+ "@molecule/app-http": "^1.0.0",
29
+ "@molecule/app-i18n": "^1.0.0",
30
+ "@molecule/app-logger": "^1.0.0",
31
+ "@molecule/app-platform": "^1.0.0",
32
+ "@molecule/app-push": "^1.0.0",
33
+ "@molecule/app-routing": "^1.0.0",
34
+ "@molecule/app-state": "^1.0.0",
35
+ "@molecule/app-storage": "^1.0.0",
36
+ "@molecule/app-theme": "^1.0.0",
37
+ "@molecule/app-ui": "^1.0.0",
38
+ "@molecule/app-utilities": "^1.0.0",
39
+ "@molecule/app-version": "^1.0.0",
40
+ "svelte": "^4.0.0 || ^5.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@molecule/app-utilities": "1.0.0",
44
+ "@types/node": "26.1.2",
45
+ "svelte": "5.56.8",
46
+ "typescript": "6.0.3",
47
+ "vitest": "4.1.10"
48
+ },
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "https://github.com/molecule-dev/molecule.git",
52
+ "directory": "packages/app/frameworks/svelte"
53
+ },
54
+ "homepage": "https://github.com/molecule-dev/molecule/tree/main/packages/app/frameworks/svelte",
55
+ "bugs": "https://github.com/molecule-dev/molecule/issues",
56
+ "publishConfig": {
57
+ "access": "public"
58
+ }
59
+ }