@molecule/app-solid 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 (107) hide show
  1. package/LICENSE +115 -0
  2. package/README.md +2543 -0
  3. package/dist/context.d.ts +82 -0
  4. package/dist/context.d.ts.map +1 -0
  5. package/dist/context.js +141 -0
  6. package/dist/context.js.map +1 -0
  7. package/dist/index.d.ts +61 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +61 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/primitives/async-state.d.ts +46 -0
  12. package/dist/primitives/async-state.d.ts.map +1 -0
  13. package/dist/primitives/async-state.js +83 -0
  14. package/dist/primitives/async-state.js.map +1 -0
  15. package/dist/primitives/auth.d.ts +85 -0
  16. package/dist/primitives/auth.d.ts.map +1 -0
  17. package/dist/primitives/auth.js +147 -0
  18. package/dist/primitives/auth.js.map +1 -0
  19. package/dist/primitives/capacitor-app.d.ts +46 -0
  20. package/dist/primitives/capacitor-app.d.ts.map +1 -0
  21. package/dist/primitives/capacitor-app.js +57 -0
  22. package/dist/primitives/capacitor-app.js.map +1 -0
  23. package/dist/primitives/change-password.d.ts +36 -0
  24. package/dist/primitives/change-password.d.ts.map +1 -0
  25. package/dist/primitives/change-password.js +32 -0
  26. package/dist/primitives/change-password.js.map +1 -0
  27. package/dist/primitives/device.d.ts +48 -0
  28. package/dist/primitives/device.d.ts.map +1 -0
  29. package/dist/primitives/device.js +47 -0
  30. package/dist/primitives/device.js.map +1 -0
  31. package/dist/primitives/forms.d.ts +193 -0
  32. package/dist/primitives/forms.d.ts.map +1 -0
  33. package/dist/primitives/forms.js +309 -0
  34. package/dist/primitives/forms.js.map +1 -0
  35. package/dist/primitives/http.d.ts +176 -0
  36. package/dist/primitives/http.d.ts.map +1 -0
  37. package/dist/primitives/http.js +254 -0
  38. package/dist/primitives/http.js.map +1 -0
  39. package/dist/primitives/i18n.d.ts +146 -0
  40. package/dist/primitives/i18n.d.ts.map +1 -0
  41. package/dist/primitives/i18n.js +223 -0
  42. package/dist/primitives/i18n.js.map +1 -0
  43. package/dist/primitives/index.d.ts +27 -0
  44. package/dist/primitives/index.d.ts.map +1 -0
  45. package/dist/primitives/index.js +27 -0
  46. package/dist/primitives/index.js.map +1 -0
  47. package/dist/primitives/logger.d.ts +143 -0
  48. package/dist/primitives/logger.d.ts.map +1 -0
  49. package/dist/primitives/logger.js +165 -0
  50. package/dist/primitives/logger.js.map +1 -0
  51. package/dist/primitives/login.d.ts +37 -0
  52. package/dist/primitives/login.d.ts.map +1 -0
  53. package/dist/primitives/login.js +32 -0
  54. package/dist/primitives/login.js.map +1 -0
  55. package/dist/primitives/oauth.d.ts +102 -0
  56. package/dist/primitives/oauth.d.ts.map +1 -0
  57. package/dist/primitives/oauth.js +232 -0
  58. package/dist/primitives/oauth.js.map +1 -0
  59. package/dist/primitives/password-reset.d.ts +46 -0
  60. package/dist/primitives/password-reset.d.ts.map +1 -0
  61. package/dist/primitives/password-reset.js +49 -0
  62. package/dist/primitives/password-reset.js.map +1 -0
  63. package/dist/primitives/platform.d.ts +48 -0
  64. package/dist/primitives/platform.d.ts.map +1 -0
  65. package/dist/primitives/platform.js +47 -0
  66. package/dist/primitives/platform.js.map +1 -0
  67. package/dist/primitives/promise.d.ts +46 -0
  68. package/dist/primitives/promise.d.ts.map +1 -0
  69. package/dist/primitives/promise.js +104 -0
  70. package/dist/primitives/promise.js.map +1 -0
  71. package/dist/primitives/push.d.ts +52 -0
  72. package/dist/primitives/push.d.ts.map +1 -0
  73. package/dist/primitives/push.js +72 -0
  74. package/dist/primitives/push.js.map +1 -0
  75. package/dist/primitives/router.d.ts +170 -0
  76. package/dist/primitives/router.d.ts.map +1 -0
  77. package/dist/primitives/router.js +251 -0
  78. package/dist/primitives/router.js.map +1 -0
  79. package/dist/primitives/signup.d.ts +37 -0
  80. package/dist/primitives/signup.d.ts.map +1 -0
  81. package/dist/primitives/signup.js +32 -0
  82. package/dist/primitives/signup.js.map +1 -0
  83. package/dist/primitives/state.d.ts +132 -0
  84. package/dist/primitives/state.d.ts.map +1 -0
  85. package/dist/primitives/state.js +167 -0
  86. package/dist/primitives/state.js.map +1 -0
  87. package/dist/primitives/storage.d.ts +132 -0
  88. package/dist/primitives/storage.d.ts.map +1 -0
  89. package/dist/primitives/storage.js +275 -0
  90. package/dist/primitives/storage.js.map +1 -0
  91. package/dist/primitives/theme.d.ts +106 -0
  92. package/dist/primitives/theme.d.ts.map +1 -0
  93. package/dist/primitives/theme.js +187 -0
  94. package/dist/primitives/theme.js.map +1 -0
  95. package/dist/primitives/version.d.ts +50 -0
  96. package/dist/primitives/version.d.ts.map +1 -0
  97. package/dist/primitives/version.js +62 -0
  98. package/dist/primitives/version.js.map +1 -0
  99. package/dist/provider.d.ts +36 -0
  100. package/dist/provider.d.ts.map +1 -0
  101. package/dist/provider.jsx +71 -0
  102. package/dist/provider.jsx.map +1 -0
  103. package/dist/types.d.ts +82 -0
  104. package/dist/types.d.ts.map +1 -0
  105. package/dist/types.js +7 -0
  106. package/dist/types.js.map +1 -0
  107. package/package.json +58 -0
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Solid.js primitives for version and update management.
3
+ *
4
+ * @module
5
+ */
6
+ import { createSignal, onCleanup } from 'solid-js';
7
+ import { getProvider } from '@molecule/app-version';
8
+ /**
9
+ * Create version primitives for tracking app updates.
10
+ *
11
+ * @returns Version primitives object
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { createVersion } from '@molecule/app-solid'
16
+ *
17
+ * function UpdateBanner() {
18
+ * const { isUpdateAvailable, newVersion, applyUpdate, dismissUpdate } = createVersion()
19
+ *
20
+ * return (
21
+ * <Show when={isUpdateAvailable()}>
22
+ * <div>
23
+ * <span>Version {newVersion()} is available!</span>
24
+ * <button onClick={() => applyUpdate()}>Update</button>
25
+ * <button onClick={() => dismissUpdate()}>Dismiss</button>
26
+ * </div>
27
+ * </Show>
28
+ * )
29
+ * }
30
+ * ```
31
+ */
32
+ export function createVersion() {
33
+ const provider = getProvider();
34
+ const [state, setState] = createSignal(provider.getState());
35
+ const events = [
36
+ 'update-available',
37
+ 'service-worker-waiting',
38
+ 'service-worker-activated',
39
+ 'check-start',
40
+ 'check-complete',
41
+ 'check-error',
42
+ ];
43
+ const unsubscribes = events.map((event) => provider.on(event, () => {
44
+ setState(provider.getState());
45
+ }));
46
+ onCleanup(() => {
47
+ unsubscribes.forEach((unsub) => unsub());
48
+ });
49
+ return {
50
+ state,
51
+ isUpdateAvailable: () => state().isUpdateAvailable,
52
+ isChecking: () => state().isChecking,
53
+ isServiceWorkerWaiting: () => state().isServiceWorkerWaiting,
54
+ newVersion: () => state().newVersion,
55
+ checkForUpdates: () => provider.checkForUpdates(),
56
+ applyUpdate: (options) => provider.applyUpdate(options),
57
+ dismissUpdate: () => provider.dismissUpdate(),
58
+ startPeriodicChecks: (options) => provider.startPeriodicChecks(options),
59
+ stopPeriodicChecks: () => provider.stopPeriodicChecks(),
60
+ };
61
+ }
62
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/primitives/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAkBnD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,YAAY,CAAe,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEzE,MAAM,MAAM,GAAG;QACb,kBAAkB;QAClB,wBAAwB;QACxB,0BAA0B;QAC1B,aAAa;QACb,gBAAgB;QAChB,aAAa;KACL,CAAA;IAEV,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/B,CAAC,CAAC,CACH,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,KAAK;QACL,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,iBAAiB;QAClD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU;QACpC,sBAAsB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,sBAAsB;QAC5D,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU;QACpC,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE;QACjD,WAAW,EAAE,CAAC,OAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;QACxD,aAAa,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC7C,mBAAmB,EAAE,CAAC,OAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC;QACxE,kBAAkB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE;KACxD,CAAA;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * MoleculeProvider component for Solid.js framework bindings.
3
+ *
4
+ * @module
5
+ */
6
+ import type { ParentComponent } from 'solid-js';
7
+ import type { MoleculeConfig } from './types.js';
8
+ /**
9
+ * MoleculeProvider component that provides all molecule services to the component tree.
10
+ *
11
+ * @param props - Component props containing the molecule config.
12
+ * @returns The nested provider tree wrapping children.
13
+ * @example
14
+ * ```tsx
15
+ * import { MoleculeProvider } from '@molecule/app-solid'
16
+ * import { createZustandProvider } from '@molecule/app-state-zustand'
17
+ * import { createJwtAuthClient } from '@molecule/app-auth-jwt'
18
+ *
19
+ * function App() {
20
+ * return (
21
+ * <MoleculeProvider
22
+ * config={{
23
+ * state: createZustandProvider(),
24
+ * auth: createJwtAuthClient({ baseUrl: '/api' }),
25
+ * }}
26
+ * >
27
+ * <MyApp />
28
+ * </MoleculeProvider>
29
+ * )
30
+ * }
31
+ * ```
32
+ */
33
+ export declare const MoleculeProvider: ParentComponent<{
34
+ config: MoleculeConfig;
35
+ }>;
36
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAO,eAAe,EAAE,MAAM,UAAU,CAAA;AAYpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAyDxE,CAAA"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * MoleculeProvider component for Solid.js framework bindings.
3
+ *
4
+ * @module
5
+ */
6
+ import { AuthContext, HttpContext, I18nContext, LoggerContext, RouterContext, StateContext, StorageContext, ThemeContext, } from './context.js';
7
+ /**
8
+ * MoleculeProvider component that provides all molecule services to the component tree.
9
+ *
10
+ * @param props - Component props containing the molecule config.
11
+ * @returns The nested provider tree wrapping children.
12
+ * @example
13
+ * ```tsx
14
+ * import { MoleculeProvider } from '@molecule/app-solid'
15
+ * import { createZustandProvider } from '@molecule/app-state-zustand'
16
+ * import { createJwtAuthClient } from '@molecule/app-auth-jwt'
17
+ *
18
+ * function App() {
19
+ * return (
20
+ * <MoleculeProvider
21
+ * config={{
22
+ * state: createZustandProvider(),
23
+ * auth: createJwtAuthClient({ baseUrl: '/api' }),
24
+ * }}
25
+ * >
26
+ * <MyApp />
27
+ * </MoleculeProvider>
28
+ * )
29
+ * }
30
+ * ```
31
+ */
32
+ export const MoleculeProvider = (props) => {
33
+ // Build nested providers lazily — children must NOT be evaluated until all
34
+ // providers are in the component tree, otherwise child components that call
35
+ // useContext will find undefined (Solid evaluates children eagerly).
36
+ let render = () => props.children;
37
+ if (props.config.logger) {
38
+ const inner = render;
39
+ render = () => (<LoggerContext.Provider value={props.config.logger}>{inner()}</LoggerContext.Provider>);
40
+ }
41
+ if (props.config.storage) {
42
+ const inner = render;
43
+ render = () => (<StorageContext.Provider value={props.config.storage}>{inner()}</StorageContext.Provider>);
44
+ }
45
+ if (props.config.http) {
46
+ const inner = render;
47
+ render = () => <HttpContext.Provider value={props.config.http}>{inner()}</HttpContext.Provider>;
48
+ }
49
+ if (props.config.i18n) {
50
+ const inner = render;
51
+ render = () => <I18nContext.Provider value={props.config.i18n}>{inner()}</I18nContext.Provider>;
52
+ }
53
+ if (props.config.router) {
54
+ const inner = render;
55
+ render = () => (<RouterContext.Provider value={props.config.router}>{inner()}</RouterContext.Provider>);
56
+ }
57
+ if (props.config.theme) {
58
+ const inner = render;
59
+ render = () => (<ThemeContext.Provider value={props.config.theme}>{inner()}</ThemeContext.Provider>);
60
+ }
61
+ if (props.config.auth) {
62
+ const inner = render;
63
+ render = () => <AuthContext.Provider value={props.config.auth}>{inner()}</AuthContext.Provider>;
64
+ }
65
+ if (props.config.state) {
66
+ const inner = render;
67
+ render = () => (<StateContext.Provider value={props.config.state}>{inner()}</StateContext.Provider>);
68
+ }
69
+ return render();
70
+ };
71
+ //# sourceMappingURL=provider.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.jsx","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Solid.js-specific types for molecule.dev framework bindings.
3
+ *
4
+ * @module
5
+ */
6
+ import type { Accessor, Setter } from 'solid-js';
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 Solid 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
+ /**
46
+ * Auth primitives return type.
47
+ */
48
+ export interface AuthPrimitives<T = unknown> {
49
+ state: Accessor<AuthState<T>>;
50
+ user: Accessor<T | null>;
51
+ isAuthenticated: Accessor<boolean>;
52
+ isLoading: Accessor<boolean>;
53
+ login: AuthClient<T>['login'];
54
+ logout: AuthClient<T>['logout'];
55
+ register: AuthClient<T>['register'];
56
+ refresh: AuthClient<T>['refresh'];
57
+ }
58
+ /**
59
+ * Theme primitives return type.
60
+ */
61
+ export interface ThemePrimitives {
62
+ theme: Accessor<Theme>;
63
+ themeName: Accessor<string>;
64
+ mode: Accessor<'light' | 'dark'>;
65
+ setTheme: (name: string) => void;
66
+ toggleTheme: () => void;
67
+ }
68
+ /**
69
+ * Router primitives return type.
70
+ */
71
+ export interface RouterPrimitives {
72
+ location: Accessor<RouteLocation>;
73
+ params: Accessor<RouteParams>;
74
+ query: Accessor<QueryParams>;
75
+ navigate: Router['navigate'];
76
+ navigateTo: Router['navigateTo'];
77
+ back: Router['back'];
78
+ forward: Router['forward'];
79
+ isActive: Router['isActive'];
80
+ }
81
+ export type { Accessor, AuthClient, AuthState, FormController, FormOptions, HttpClient, I18nProvider, Logger, LoggerProvider, MoleculeStore, QueryParams, RouteLocation, RouteParams, Router, Setter, StateProvider, StorageProvider, StoreConfig, Theme, ThemeProvider, };
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Solid.js-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,58 @@
1
+ {
2
+ "name": "@molecule/app-solid",
3
+ "version": "1.0.0",
4
+ "description": "Solid.js framework bindings for molecule.dev",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "README.md"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "dev": "tsc --watch",
15
+ "test": "vitest run",
16
+ "test:watch": "vitest"
17
+ },
18
+ "author": "Molecule Dev, Inc. (https://molecule.dev)",
19
+ "license": "Apache-2.0",
20
+ "engines": {
21
+ "node": ">=20"
22
+ },
23
+ "peerDependencies": {
24
+ "@molecule/app-auth": "^1.0.0",
25
+ "@molecule/app-device": "^1.0.0",
26
+ "@molecule/app-forms": "^1.0.0",
27
+ "@molecule/app-http": "^1.0.0",
28
+ "@molecule/app-i18n": "^1.0.0",
29
+ "@molecule/app-logger": "^1.0.0",
30
+ "@molecule/app-platform": "^1.0.0",
31
+ "@molecule/app-push": "^1.0.0",
32
+ "@molecule/app-routing": "^1.0.0",
33
+ "@molecule/app-state": "^1.0.0",
34
+ "@molecule/app-storage": "^1.0.0",
35
+ "@molecule/app-theme": "^1.0.0",
36
+ "@molecule/app-ui": "^1.0.0",
37
+ "@molecule/app-utilities": "^1.0.0",
38
+ "@molecule/app-version": "^1.0.0",
39
+ "solid-js": "^1.8.0"
40
+ },
41
+ "devDependencies": {
42
+ "@molecule/app-utilities": "1.0.0",
43
+ "@types/node": "26.1.2",
44
+ "solid-js": "1.9.14",
45
+ "typescript": "6.0.3",
46
+ "vitest": "4.1.10"
47
+ },
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/molecule-dev/molecule.git",
51
+ "directory": "packages/app/frameworks/solid"
52
+ },
53
+ "homepage": "https://github.com/molecule-dev/molecule/tree/main/packages/app/frameworks/solid",
54
+ "bugs": "https://github.com/molecule-dev/molecule/issues",
55
+ "publishConfig": {
56
+ "access": "public"
57
+ }
58
+ }