@eldrin-project/eldrin-app-core 0.0.3 → 0.0.4

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.
package/dist/index.cjs CHANGED
@@ -1,12 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var react = require('react');
4
3
  var promises = require('fs/promises');
5
4
  var fs = require('fs');
6
5
  var path = require('path');
7
- var jsxRuntime = require('react/jsx-runtime');
8
-
9
- // src/app/createApp.tsx
10
6
 
11
7
  // src/migrations/checksum.ts
12
8
  var CHECKSUM_PREFIX = "sha256:";
@@ -444,120 +440,6 @@ async function validateMigrationManifest(manifest, files) {
444
440
  errors
445
441
  };
446
442
  }
447
- var EldrinDatabaseContext = react.createContext(null);
448
- function DatabaseProvider({
449
- db,
450
- migrationsComplete,
451
- migrationResult,
452
- children
453
- }) {
454
- const value = {
455
- db,
456
- migrationsComplete,
457
- migrationResult
458
- };
459
- return /* @__PURE__ */ jsxRuntime.jsx(EldrinDatabaseContext.Provider, { value, children });
460
- }
461
- function useDatabase() {
462
- const context = react.useContext(EldrinDatabaseContext);
463
- if (context === null) {
464
- throw new Error("useDatabase must be used within a DatabaseProvider (via createApp)");
465
- }
466
- return context.db;
467
- }
468
- function useDatabaseContext() {
469
- const context = react.useContext(EldrinDatabaseContext);
470
- if (context === null) {
471
- throw new Error("useDatabaseContext must be used within a DatabaseProvider (via createApp)");
472
- }
473
- return context;
474
- }
475
- function useMigrationsComplete() {
476
- const context = react.useContext(EldrinDatabaseContext);
477
- return context?.migrationsComplete ?? false;
478
- }
479
-
480
- // src/app/createApp.tsx
481
- function createApp(options) {
482
- const { name, root: RootComponent, migrations = [], onMigrationsComplete, onMigrationError } = options;
483
- const state = {
484
- db: null,
485
- migrationsComplete: false,
486
- migrationResult: void 0,
487
- mountedElement: void 0,
488
- reactRoot: void 0
489
- };
490
- async function bootstrap(props) {
491
- const db = props.db ?? null;
492
- state.db = db;
493
- if (db && migrations.length > 0) {
494
- try {
495
- const result = await runMigrations(db, {
496
- migrations,
497
- onLog: (message, level) => {
498
- const prefix = `[${name}]`;
499
- if (level === "error") {
500
- console.error(prefix, message);
501
- } else if (level === "warn") {
502
- console.warn(prefix, message);
503
- } else {
504
- console.log(prefix, message);
505
- }
506
- }
507
- });
508
- state.migrationResult = result;
509
- if (result.success) {
510
- state.migrationsComplete = true;
511
- onMigrationsComplete?.(result);
512
- } else {
513
- const error = new Error(result.error?.message ?? "Migration failed");
514
- onMigrationError?.(error);
515
- throw error;
516
- }
517
- } catch (error) {
518
- state.migrationsComplete = false;
519
- const err = error instanceof Error ? error : new Error(String(error));
520
- onMigrationError?.(err);
521
- throw err;
522
- }
523
- } else {
524
- state.migrationsComplete = true;
525
- }
526
- }
527
- async function mount(props) {
528
- const domElement = props.domElement ?? document.getElementById(`app-${name}`);
529
- if (!domElement) {
530
- throw new Error(`No DOM element found for app "${name}". Expected element with id="app-${name}" or domElement prop.`);
531
- }
532
- state.mountedElement = domElement;
533
- const rootElement = react.createElement(RootComponent, props.customProps ?? {});
534
- const appElement = react.createElement(DatabaseProvider, {
535
- db: state.db,
536
- migrationsComplete: state.migrationsComplete,
537
- migrationResult: state.migrationResult,
538
- children: rootElement
539
- });
540
- const ReactDOM = await import('react-dom/client');
541
- const root = ReactDOM.createRoot(domElement);
542
- root.render(appElement);
543
- state.reactRoot = root;
544
- }
545
- async function unmount(_props) {
546
- if (state.reactRoot) {
547
- state.reactRoot.unmount();
548
- state.reactRoot = void 0;
549
- }
550
- if (state.mountedElement) {
551
- state.mountedElement.innerHTML = "";
552
- state.mountedElement = void 0;
553
- }
554
- }
555
- return {
556
- bootstrap,
557
- mount,
558
- unmount
559
- };
560
- }
561
443
 
562
444
  // src/events/client.ts
563
445
  var EldrinEventClient = class {
@@ -1163,12 +1045,10 @@ function createPermissionMiddleware(config) {
1163
1045
 
1164
1046
  exports.AUTH_HEADERS = AUTH_HEADERS;
1165
1047
  exports.CHECKSUM_PREFIX = CHECKSUM_PREFIX;
1166
- exports.DatabaseProvider = DatabaseProvider;
1167
1048
  exports.EldrinEventClient = EldrinEventClient;
1168
1049
  exports.calculateChecksum = calculateChecksum;
1169
1050
  exports.calculatePrefixedChecksum = calculatePrefixedChecksum;
1170
1051
  exports.compileRoutes = compileRoutes;
1171
- exports.createApp = createApp;
1172
1052
  exports.createEventClient = createEventClient;
1173
1053
  exports.createPermissionMiddleware = createPermissionMiddleware;
1174
1054
  exports.extractTimestamp = extractTimestamp;
@@ -1193,9 +1073,6 @@ exports.requireJWTPermission = requireJWTPermission;
1193
1073
  exports.requirePermission = requirePermission;
1194
1074
  exports.rollbackMigrations = rollbackMigrations;
1195
1075
  exports.runMigrations = runMigrations;
1196
- exports.useDatabase = useDatabase;
1197
- exports.useDatabaseContext = useDatabaseContext;
1198
- exports.useMigrationsComplete = useMigrationsComplete;
1199
1076
  exports.validateMigrationManifest = validateMigrationManifest;
1200
1077
  exports.verifyChecksum = verifyChecksum;
1201
1078
  exports.verifyJWT = verifyJWT;