@openparachute/app 0.2.0-rc.10
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/.parachute/config/schema +62 -0
- package/.parachute/info +14 -0
- package/.parachute/module.json +14 -0
- package/CHANGELOG.md +537 -0
- package/LICENSE +661 -0
- package/bin/parachute-app.ts +525 -0
- package/dist/admin/assets/index-BXlRNPxk.js +60 -0
- package/dist/admin/assets/index-DaGP1hmw.css +1 -0
- package/dist/admin/index.html +14 -0
- package/package.json +51 -0
- package/src/admin-routes.ts +884 -0
- package/src/auth.ts +212 -0
- package/src/bootstrap.ts +153 -0
- package/src/cache-headers.ts +106 -0
- package/src/config.ts +289 -0
- package/src/dcr.ts +334 -0
- package/src/dev-injection.ts +166 -0
- package/src/dev-mode.ts +205 -0
- package/src/dev-routes.ts +380 -0
- package/src/dev-watcher.ts +479 -0
- package/src/http-server.ts +682 -0
- package/src/index.ts +394 -0
- package/src/meta-schema.ts +715 -0
- package/src/npm-fetch.ts +320 -0
- package/src/operator-token.ts +95 -0
- package/src/provision-schema.ts +180 -0
- package/src/self-register.ts +184 -0
- package/src/services-manifest.ts +104 -0
- package/src/tenancy-injection.ts +149 -0
- package/src/ui-registry.ts +202 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;margin:0;color:#222;background:#fafafa;font-size:15px;line-height:1.5}a{color:#1e6bb8;text-decoration:none}a:hover{text-decoration:underline}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.app{max-width:1100px;margin:0 auto;padding:1.5rem 2rem}.app-header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #ddd;padding-bottom:1rem;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.app-header h1{margin:0;font-weight:600;font-size:1.4rem}.app-header h1 a{color:inherit}.app-subtitle{font-size:.85rem;color:#888;margin-left:.6rem;font-weight:400}.app-nav{display:flex;gap:1.2rem}.app-main{min-height:60vh}.app-footer{margin-top:3rem;padding-top:1rem;border-top:1px solid #eee;color:#888}.token-setup{padding:1rem;background:#fffbe6;border:1px solid #f0d770;border-radius:4px;margin-bottom:1.5rem}.token-setup--collapsed{display:flex;align-items:center;gap:1rem;background:#f1f7ed;border-color:#b1d997}.token-setup p{margin-top:0}.token-setup__row{display:flex;gap:.5rem}.token-setup__row input{flex:1}button,.btn{font-family:inherit;font-size:.92rem;padding:.35rem .75rem;border:1px solid #c4c4c4;background:#fff;border-radius:3px;cursor:pointer}button:hover,.btn:hover{background:#f1f1f1}button:disabled{color:#999;cursor:not-allowed}.btn-primary{background:#1e6bb8;color:#fff;border-color:#1e6bb8}.btn-primary:hover{background:#195a9a}input[type=text],input[type=password]{font-family:inherit;font-size:.95rem;padding:.45rem .6rem;border:1px solid #c4c4c4;border-radius:3px;width:100%}.modules__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modules__table{width:100%;border-collapse:collapse;font-size:.92rem}.modules__table th,.modules__table td{border-bottom:1px solid #eee;padding:.75rem;text-align:left;vertical-align:top}.modules__table th{font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:#555;background:#f5f5f5}.modules__mount{font-family:ui-monospace,monospace;font-size:.9rem}.modules__scopes{margin:0;padding:0;list-style:none}.modules__scopes li{font-size:.85rem}.modules__actions{display:flex;gap:.4rem}.badge{display:inline-block;font-size:.7rem;padding:.1rem .4rem;border:1px solid #888;border-radius:3px;color:#555;margin-top:.2rem}.empty,.loading{padding:2rem;text-align:center;color:#888}.error{padding:.6rem .9rem;background:#ffe5e5;border:1px solid #f0a0a0;border-radius:3px;margin-bottom:1rem}.warning{padding:.4rem .7rem;background:#fff5d6;border:1px solid #e0c060;border-radius:3px}.success{padding:1rem;background:#f1f7ed;border:1px solid #b1d997;border-radius:3px;margin-bottom:1rem}.muted{color:#888}.small-code{font-size:.78rem;color:#555}.add__form{display:grid;gap:1rem;max-width:560px}.add__form label{display:grid;gap:.25rem}.add__form label>span{font-weight:500}.add__form small{color:#888;font-size:.82rem}.modules__skipped{margin-top:2rem;padding:1rem;background:#fff5d6;border:1px solid #e0c060;border-radius:4px}.modules__skipped h3{margin-top:0}.meta-json{padding:1rem;background:#f5f5f5;border-radius:3px;overflow:auto;font-size:.85rem}.ui-info ul{padding-left:1.2rem}.schema-requirements{margin-top:.5rem;font-size:.85rem}.schema-requirements summary{cursor:pointer;color:#1e6bb8;padding:.15rem 0}.schema-requirements summary:hover{text-decoration:underline}.schema-requirements__tags{list-style:none;padding:0;margin:.5rem 0 0}.schema-requirements__tag{margin-bottom:.75rem;padding-left:.5rem;border-left:2px solid #ddd}.schema-requirements__tag-name{font-weight:600;font-size:.9rem}.schema-requirements__tag-desc{color:#555;font-size:.85rem}.schema-requirements__fields{margin-top:.4rem;font-size:.82rem;border-collapse:collapse}.schema-requirements__fields th,.schema-requirements__fields td{padding:.2rem .6rem .2rem 0;text-align:left;vertical-align:top}.schema-requirements__fields th{color:#666;font-weight:500;border-bottom:1px solid #eee}.schema-requirements__note{margin:.5rem 0 0;font-size:.78rem;color:#888;font-style:italic}.schema-requirements--compact .schema-requirements__fields{font-size:.78rem}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>parachute-app admin</title>
|
|
7
|
+
<meta name="description" content="Manage UIs hosted by parachute-app." />
|
|
8
|
+
<script type="module" crossorigin src="/app/admin/assets/index-BXlRNPxk.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/app/admin/assets/index-DaGP1hmw.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="root"></div>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openparachute/app",
|
|
3
|
+
"version": "0.2.0-rc.10",
|
|
4
|
+
"description": "Host module for custom Parachute UIs — drop a built bundle in and serve it under one origin.",
|
|
5
|
+
"module": "src/index.ts",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./src/index.ts",
|
|
9
|
+
"./meta-schema": "./src/meta-schema.ts"
|
|
10
|
+
},
|
|
11
|
+
"private": false,
|
|
12
|
+
"license": "AGPL-3.0",
|
|
13
|
+
"bin": {
|
|
14
|
+
"parachute-app": "bin/parachute-app.ts"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"src/**/*.ts",
|
|
18
|
+
"!src/**/*.test.ts",
|
|
19
|
+
"bin/**/*.ts",
|
|
20
|
+
"dist/admin/**",
|
|
21
|
+
".parachute/module.json",
|
|
22
|
+
".parachute/info",
|
|
23
|
+
".parachute/config/schema",
|
|
24
|
+
"README.md",
|
|
25
|
+
"LICENSE",
|
|
26
|
+
"CHANGELOG.md"
|
|
27
|
+
],
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"start": "bun run bin/parachute-app.ts serve",
|
|
33
|
+
"build": "cd ../../web/admin && bun install --frozen-lockfile && bun run build",
|
|
34
|
+
"build:admin": "cd ../../web/admin && bun run build",
|
|
35
|
+
"test": "bun test src/",
|
|
36
|
+
"typecheck": "tsc --noEmit",
|
|
37
|
+
"lint": "biome check ."
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@biomejs/biome": "^1.9.4",
|
|
41
|
+
"@types/bun": "latest",
|
|
42
|
+
"typescript": "^5"
|
|
43
|
+
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"typescript": "^5"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@openparachute/app-client": "^0.1.0-rc.3",
|
|
49
|
+
"@openparachute/scope-guard": "^0.4.0-rc.1"
|
|
50
|
+
}
|
|
51
|
+
}
|