@ibgib/space-gib 0.0.1

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 (84) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/Dockerfile +14 -0
  3. package/IMPLEMENTATION.md +484 -0
  4. package/README.md +46 -0
  5. package/dist/client/bootstrap.mjs +58 -0
  6. package/dist/client/bootstrap.mjs.map +7 -0
  7. package/dist/client/chunk-CT47Z5WU.mjs +21 -0
  8. package/dist/client/chunk-CT47Z5WU.mjs.map +7 -0
  9. package/dist/client/chunk-RHEDTRKF.mjs +235 -0
  10. package/dist/client/chunk-RHEDTRKF.mjs.map +7 -0
  11. package/dist/client/index.html +147 -0
  12. package/dist/client/index.mjs +2 -0
  13. package/dist/client/index.mjs.map +7 -0
  14. package/dist/client/script.mjs +2 -0
  15. package/dist/client/script.mjs.map +7 -0
  16. package/dist/client/style.css +605 -0
  17. package/dist/respec-gib.node.mjs +5 -0
  18. package/dist/server/server.mjs +20157 -0
  19. package/dist/server/server.mjs.map +7 -0
  20. package/generate-version-file.js +35 -0
  21. package/package.json +27 -0
  22. package/src/client/AUTO-GENERATED-version.mts +11 -0
  23. package/src/client/README.md +19 -0
  24. package/src/client/api/function-infos.web.mts +38 -0
  25. package/src/client/api/space-gib-api-bridge.mts +85 -0
  26. package/src/client/bootstrap.mts +49 -0
  27. package/src/client/components/keystone-creator/keystone-creator.css +139 -0
  28. package/src/client/components/keystone-creator/keystone-creator.html +26 -0
  29. package/src/client/components/keystone-creator/keystone-creator.mts +229 -0
  30. package/src/client/constants.mts +76 -0
  31. package/src/client/custom.d.ts +11 -0
  32. package/src/client/dev-tools.mts +540 -0
  33. package/src/client/helpers.web.mts +178 -0
  34. package/src/client/index.html +147 -0
  35. package/src/client/index.mts +59 -0
  36. package/src/client/script.mts +13 -0
  37. package/src/client/style.css +605 -0
  38. package/src/client/types.mts +85 -0
  39. package/src/client/ui/shell/space-gib-shell-constants.mts +24 -0
  40. package/src/client/ui/shell/space-gib-shell-service.mts +233 -0
  41. package/src/client/ui/shell/space-gib-shell-types.mts +5 -0
  42. package/src/client/witness/app/space-gib/space-gib-app-v1.mts +160 -0
  43. package/src/client/witness/app/space-gib/space-gib-constants.mts +38 -0
  44. package/src/client/witness/app/space-gib/space-gib-helper.mts +72 -0
  45. package/src/client/witness/app/space-gib/space-gib-types.mts +47 -0
  46. package/src/common/keystone-policies.mts +159 -0
  47. package/src/respec-gib.node.mts +6 -0
  48. package/src/server/README.md +18 -0
  49. package/src/server/bootstrap-helper.mts +141 -0
  50. package/src/server/bootstrap-helper.respec.mts +100 -0
  51. package/src/server/metaspace-nodeindexedspace/metaspace-nodeindexedspace.mts +85 -0
  52. package/src/server/path-constants.mts +89 -0
  53. package/src/server/path-helper.mts +101 -0
  54. package/src/server/path-helper.respec.mts +94 -0
  55. package/src/server/serve-gib/CHANGELOG.md +29 -0
  56. package/src/server/serve-gib/README.md +34 -0
  57. package/src/server/serve-gib/constants.mts +1 -0
  58. package/src/server/serve-gib/handlers/api/debug/ws-echo.handler.mts +104 -0
  59. package/src/server/serve-gib/handlers/api/health.handler.mts +23 -0
  60. package/src/server/serve-gib/handlers/api/health.respec.mts +51 -0
  61. package/src/server/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts +49 -0
  62. package/src/server/serve-gib/handlers/api/ibgib/ibgib.handler.mts +176 -0
  63. package/src/server/serve-gib/handlers/api/keystone/keystone-evolve.handler.mts +261 -0
  64. package/src/server/serve-gib/handlers/api/keystone/keystone-genesis.handler.mts +146 -0
  65. package/src/server/serve-gib/handlers/api/keystone/keystone-get.handler.mts +198 -0
  66. package/src/server/serve-gib/handlers/api/keystone/keystone-get.respec.mts +107 -0
  67. package/src/server/serve-gib/handlers/api/keystone/keystone-handler-types.mts +29 -0
  68. package/src/server/serve-gib/handlers/api/keystone/keystone-post.handler.mts +70 -0
  69. package/src/server/serve-gib/handlers/api/keystone/keystone-post.respec.mts +130 -0
  70. package/src/server/serve-gib/handlers/error-handler.mts +36 -0
  71. package/src/server/serve-gib/handlers/handler-base.mts +383 -0
  72. package/src/server/serve-gib/handlers/static-handler.mts +82 -0
  73. package/src/server/serve-gib/handlers/ws/sync-upgrade.handler.mts +498 -0
  74. package/src/server/serve-gib/handlers/ws/ws-helper.mts +111 -0
  75. package/src/server/serve-gib/handlers/ws/ws-types.mts +53 -0
  76. package/src/server/serve-gib/serve-gib-helpers.mts +32 -0
  77. package/src/server/serve-gib/serve-gib-v1.mts +172 -0
  78. package/src/server/serve-gib/serve-gib.respec.mts +90 -0
  79. package/src/server/serve-gib/types.mts +102 -0
  80. package/src/server/server-constants.mts +2 -0
  81. package/src/server/server.mts +96 -0
  82. package/tsconfig.json +29 -0
  83. package/tsconfig.server.json +29 -0
  84. package/tsconfig.test.json +27 -0
@@ -0,0 +1,147 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-US">
3
+
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <!--
8
+ HTML_META_APP_ID: Used by isExecutingInBlankGibWebAppProper() to detect
9
+ whether code is running in the top-level shell vs. an embedded iframe.
10
+ The content value MUST be unique per app.
11
+ -->
12
+ <meta name="ibgib-app-id" content="0c45ac92e668410190b115512d5e2d51" />
13
+ <meta name="description"
14
+ content="space-gib — ibgib durable storage and SaaS provider. Store, retrieve, and manage ibgib data in a decentralized, content-addressed space." />
15
+ <title>space-gib · ibgib.space</title>
16
+ <link rel="stylesheet" type="text/css" href="style.css">
17
+ <script type="module" src="script.mjs" defer></script>
18
+ <script type="module" src="index.mjs" defer></script>
19
+ </head>
20
+
21
+ <body>
22
+ <!--
23
+ REQUIRED: fullscreen-dialog
24
+ This block is required by @ibgib/web-gib helper functions (alertUser,
25
+ promptForText, promptForSecret, promptForConfirm). Do not remove or rename
26
+ the element IDs prefixed with "fullscreen-dialog-".
27
+ -->
28
+ <dialog id="fullscreen-dialog" class="fullscreen-dialog">
29
+ <div id="fullscreen-dialog-content" class="fullscreen-dialog-content">
30
+ <div id="fullscreen-dialog-header" class="fullscreen-dialog-header">
31
+ <h2 id="fullscreen-dialog-title"></h2>
32
+ </div>
33
+ <div id="fullscreen-dialog-body" class="fullscreen-dialog-body">
34
+ <div id="fullscreen-dialog-message" class="fullscreen-dialog-message"></div>
35
+ <input type="text" id="fullscreen-dialog-prompt-input" class="collapsed">
36
+ </div>
37
+ <div id="fullscreen-dialog-footer" class="fullscreen-dialog-footer">
38
+ <button id="fullscreen-dialog-ok-button" class="dialog-button">OK</button>
39
+ <button id="fullscreen-dialog-cancel-button" class="dialog-button">Cancel</button>
40
+ </div>
41
+ </div>
42
+ </dialog>
43
+
44
+ <!-- =====================================================================
45
+ SPACE-GIB SHELL
46
+ This is the Phase 1 shell scaffold. The full four-panel UI will be
47
+ wired up in Phase 1b / 2 alongside the shell service.
48
+ ===================================================================== -->
49
+
50
+ <div id="app-root" class="app-root">
51
+
52
+ <!-- Header Panel -->
53
+ <header id="header-panel" class="header-panel">
54
+ <div class="header-content">
55
+ <button id="btn-left-panel-toggle" class="panel-toggle-btn" aria-label="Toggle Left Panel">☰</button>
56
+ <a id="space-gib-title-link" href="/" class="brand-link">
57
+ <span class="brand-icon">◈</span>
58
+ <span class="brand-name">space<span class="brand-accent">-</span>gib</span>
59
+ </a>
60
+ <nav class="header-nav" aria-label="Main navigation">
61
+ <a href="/docs" class="nav-link">Docs</a>
62
+ <a href="/api" class="nav-link">API</a>
63
+ </nav>
64
+ <button id="btn-right-panel-toggle" class="panel-toggle-btn" aria-label="Toggle Right Panel">◨</button>
65
+ </div>
66
+ </header>
67
+
68
+ <!-- Middle Content Row -->
69
+ <div class="middle-row">
70
+ <!-- Left Panel -->
71
+ <aside id="left-panel" class="side-panel left-panel collapsed">
72
+ <div class="panel-content-inner">
73
+ <p class="placeholder-text">Left Panel Content</p>
74
+ </div>
75
+ </aside>
76
+
77
+ <!-- Left Resizer -->
78
+ <div id="left-resizer" class="resizer resizer-v"></div>
79
+
80
+ <!-- Center Panel -->
81
+ <main id="center-panel" class="center-panel">
82
+ <div class="center-panel-content">
83
+ <section class="hero-section">
84
+ <div class="hero-glyph" aria-hidden="true">◈</div>
85
+ <h1 class="hero-title">space-gib</h1>
86
+ <p class="hero-tagline">
87
+ Durable, content-addressed ibgib storage.<br>
88
+ Your data, your keystone, your space.
89
+ </p>
90
+ <div class="cta-row">
91
+ <button id="btn-create-keystone" class="cta-btn cta-primary">Create Keystone</button>
92
+ <a href="/docs" class="cta-btn cta-secondary">Learn More</a>
93
+ </div>
94
+ </section>
95
+
96
+ <!-- Status / health indicator -->
97
+ <section class="status-section" id="status-section" aria-live="polite">
98
+ <div id="engine-status" class="status-badge status-loading">
99
+ ⏳ Initialising ibgib engine…
100
+ </div>
101
+ </section>
102
+
103
+ <!-- DEV TOOLS — remove or hide once WS sync is confirmed working -->
104
+ <section class="dev-panel" id="dev-panel" aria-label="Developer tools">
105
+ <h2 class="dev-panel-title">Dev Tools</h2>
106
+ <div class="dev-panel-row">
107
+ <button id="btn-print-dev-state" class="dev-btn">Print Dev State</button>
108
+ <button id="btn-create-domain-keystone" class="dev-btn">1. Create Domain Keystone (I)</button>
109
+ <button id="btn-create-test-ibgib" class="dev-btn" disabled>2. Create Test IbGib (X)</button>
110
+ <button id="btn-create-session-keystone" class="dev-btn" disabled>3. Create Session Keystone (S)</button>
111
+ <button id="btn-evolve-domain-keystone" class="dev-btn" disabled>4. Evolve Domain Keystone (I^I1)</button>
112
+ <button id="btn-perform-sync" class="dev-btn" disabled>5. Perform Sync Handshake (S)</button>
113
+ <button id="btn-test-ws" class="dev-btn">Test WebSocket Echo</button>
114
+ </div>
115
+ <pre id="dev-panel-log" class="dev-panel-log" aria-live="polite" aria-label="Dev log"></pre>
116
+ </section>
117
+ </div>
118
+ </main>
119
+
120
+ <!-- Right Resizer -->
121
+ <div id="right-resizer" class="resizer resizer-v"></div>
122
+
123
+ <!-- Right Panel -->
124
+ <aside id="right-panel" class="side-panel right-panel collapsed">
125
+ <div class="panel-content-inner">
126
+ <p class="placeholder-text">Right Panel Content</p>
127
+ </div>
128
+ </aside>
129
+ </div>
130
+
131
+ <!-- Footer Resizer -->
132
+ <div id="footer-resizer" class="resizer resizer-h"></div>
133
+
134
+ <!-- Footer Panel -->
135
+ <footer id="footer-panel" class="footer-panel">
136
+ <p class="footer-text">
137
+ <span>© ibgib contributors</span> ·
138
+ <a href="https://ibgib.space" class="footer-link">ibgib.space</a> ·
139
+ <a href="https://github.com/ibgib" class="footer-link" target="_blank" rel="noopener">GitHub</a>
140
+ </p>
141
+ </footer>
142
+
143
+ </div>
144
+
145
+ </body>
146
+
147
+ </html>
@@ -0,0 +1,2 @@
1
+ import{$b as a,Ab as n,Bb as i,Yb as c,Zb as l,a as r,hc as s,n as e}from"./chunk-CT47Z5WU.mjs";l(i);var m=n;async function d(){let o=`[${d.name}]`;try{m&&console.log(`${o} starting... (I: 3d893846d02c4ff49181f9b8e586eb74)`),console.time(o),document.addEventListener("DOMContentLoaded",async()=>{try{console.timeLog(o,"DOMContentLoaded fired"),await c(i),console.timeLog(o,"initIbGibStorage complete"),await a("./bootstrap.mjs"),console.timeLog(o,"dynamicallyLoadBootstrapScript complete"),s(),console.timeLog(o,"initDevTools complete"),console.timeEnd(o)}catch(t){throw console.error(`${o} ${e(t)}`),t}})}catch(t){console.timeEnd(o);debugger;throw console.error(`${o} ${e(t)}`),t}finally{m&&console.log(`${o} complete.`)}}r(d,"spinOffStartup");d();
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/client/index.mts"],
4
+ "sourcesContent": ["import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';\n\nimport { GLOBAL_LOG_A_LOT, APP_CONFIG } from './constants.mjs';\nimport {\n initIbGibStorage,\n initIbGibGlobalThis,\n dynamicallyLoadBootstrapScript,\n} from './helpers.web.mjs';\nimport { initDevTools } from './dev-tools.mjs';\n\ninitIbGibGlobalThis(APP_CONFIG);\n\nconst logalot = GLOBAL_LOG_A_LOT;\n\n/**\n * hmm\n * Initiates startup without blocking DOMContentLoaded.\n *\n * Sequence:\n * 1. Init IndexedDB storage\n * 2. Dynamically import bootstrap.mts \u2014 the heavy ibgib graph loads here\n */\nasync function spinOffStartup(): Promise<void> {\n const lc = `[${spinOffStartup.name}]`;\n try {\n if (logalot) { console.log(`${lc} starting... (I: 3d893846d02c4ff49181f9b8e586eb74)`); }\n console.time(lc);\n\n document.addEventListener('DOMContentLoaded', async () => {\n try {\n console.timeLog(lc, 'DOMContentLoaded fired');\n\n await initIbGibStorage(APP_CONFIG);\n console.timeLog(lc, 'initIbGibStorage complete');\n\n await dynamicallyLoadBootstrapScript('./bootstrap.mjs');\n console.timeLog(lc, 'dynamicallyLoadBootstrapScript complete');\n\n initDevTools();\n console.timeLog(lc, 'initDevTools complete');\n\n console.timeEnd(lc);\n } catch (error) {\n console.error(`${lc} ${extractErrorMsg(error)}`);\n throw error;\n }\n });\n\n } catch (error) {\n console.timeEnd(lc);\n debugger; // error in index.mts \u2014 investigate immediately\n console.error(`${lc} ${extractErrorMsg(error)}`);\n throw error;\n } finally {\n if (logalot) { console.log(`${lc} complete.`); }\n }\n}\n\nspinOffStartup();\n"],
5
+ "mappings": "gGAUAA,EAAoBC,CAAU,EAE9B,IAAMC,EAAUC,EAUhB,eAAeC,GAAgC,CAC3C,IAAMC,EAAK,IAAID,EAAe,IAAI,IAClC,GAAI,CACIF,GAAW,QAAQ,IAAI,GAAGG,CAAE,oDAAoD,EACpF,QAAQ,KAAKA,CAAE,EAEf,SAAS,iBAAiB,mBAAoB,SAAY,CACtD,GAAI,CACA,QAAQ,QAAQA,EAAI,wBAAwB,EAE5C,MAAMC,EAAiBL,CAAU,EACjC,QAAQ,QAAQI,EAAI,2BAA2B,EAE/C,MAAME,EAA+B,iBAAiB,EACtD,QAAQ,QAAQF,EAAI,yCAAyC,EAE7DG,EAAa,EACb,QAAQ,QAAQH,EAAI,uBAAuB,EAE3C,QAAQ,QAAQA,CAAE,CACtB,OAASI,EAAO,CACZ,cAAQ,MAAM,GAAGJ,CAAE,IAAIK,EAAgBD,CAAK,CAAC,EAAE,EACzCA,CACV,CACJ,CAAC,CAEL,OAASA,EAAO,CACZ,QAAQ,QAAQJ,CAAE,EAClB,SACA,cAAQ,MAAM,GAAGA,CAAE,IAAIK,EAAgBD,CAAK,CAAC,EAAE,EACzCA,CACV,QAAE,CACMP,GAAW,QAAQ,IAAI,GAAGG,CAAE,YAAY,CAChD,CACJ,CAlCeM,EAAAP,EAAA,kBAoCfA,EAAe",
6
+ "names": ["initIbGibGlobalThis", "APP_CONFIG", "logalot", "GLOBAL_LOG_A_LOT", "spinOffStartup", "lc", "initIbGibStorage", "dynamicallyLoadBootstrapScript", "initDevTools", "error", "extractErrorMsg", "__name"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{y as e}from"./chunk-RHEDTRKF.mjs";import"./chunk-CT47Z5WU.mjs";console.log("space-gib early script executing...");e();
2
+ //# sourceMappingURL=script.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/client/script.mts"],
4
+ "sourcesContent": ["/**\n * script.mts\n *\n * Early initialization script for the space-gib SPA.\n * Runs as soon as the HTML is parsed (before DOMContentLoaded).\n */\n\nconsole.log('space-gib early script executing...');\n\nimport { getSpaceGibShellSvc } from \"./ui/shell/space-gib-shell-service.mjs\";\n\n// Initialize the UI shell singleton\ngetSpaceGibShellSvc();\n"],
5
+ "mappings": "sEAOA,QAAQ,IAAI,qCAAqC,EAKjDA,EAAoB",
6
+ "names": ["getSpaceGibShellSvc"]
7
+ }