@percher/core 0.4.10 → 0.4.12
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/ai-files-manifest.d.ts +1 -1
- package/dist/appstore-artifacts.d.ts +44 -0
- package/dist/appstore-artifacts.d.ts.map +1 -0
- package/dist/appstore-artifacts.js +142 -0
- package/dist/appstore-artifacts.js.map +1 -0
- package/dist/commands/account.d.ts +1 -1
- package/dist/commands/account.js +2 -2
- package/dist/commands/admin-reconcile-routes.d.ts +1 -1
- package/dist/commands/ai-files.d.ts +2 -2
- package/dist/commands/ai-files.js +2 -2
- package/dist/commands/alerts.d.ts +1 -1
- package/dist/commands/app-resources.d.ts +1 -1
- package/dist/commands/app-resources.js +2 -2
- package/dist/commands/app-topology.d.ts +1 -1
- package/dist/commands/app-topology.js +2 -2
- package/dist/commands/appstore-kit.d.ts +36 -0
- package/dist/commands/appstore-kit.d.ts.map +1 -0
- package/dist/commands/appstore-kit.js +93 -0
- package/dist/commands/appstore-kit.js.map +1 -0
- package/dist/commands/billing.d.ts +1 -1
- package/dist/commands/billing.js +1 -1
- package/dist/commands/cache.d.ts +1 -1
- package/dist/commands/cache.js +2 -2
- package/dist/commands/capabilities.d.ts +1 -1
- package/dist/commands/claim.d.ts +1 -1
- package/dist/commands/claim.js +1 -1
- package/dist/commands/create.d.ts +2 -2
- package/dist/commands/create.js +2 -2
- package/dist/commands/dashboard.d.ts +1 -1
- package/dist/commands/dashboard.js +2 -2
- package/dist/commands/data-export.d.ts +1 -1
- package/dist/commands/data-export.js +3 -3
- package/dist/commands/data.d.ts +1 -1
- package/dist/commands/data.js +2 -2
- package/dist/commands/delete.d.ts +1 -1
- package/dist/commands/delete.js +2 -2
- package/dist/commands/deploys.d.ts +1 -1
- package/dist/commands/deploys.js +2 -2
- package/dist/commands/dev.d.ts +1 -1
- package/dist/commands/dev.js +3 -3
- package/dist/commands/diagnose.d.ts +1 -1
- package/dist/commands/diagnose.js +2 -2
- package/dist/commands/diff.d.ts +1 -1
- package/dist/commands/diff.js +2 -2
- package/dist/commands/doctor.d.ts +3 -3
- package/dist/commands/doctor.js +4 -4
- package/dist/commands/domains.d.ts +1 -1
- package/dist/commands/domains.js +2 -2
- package/dist/commands/env.d.ts +1 -1
- package/dist/commands/env.js +2 -2
- package/dist/commands/export.d.ts +1 -1
- package/dist/commands/export.js +2 -2
- package/dist/commands/forgejo.d.ts +1 -1
- package/dist/commands/forgejo.js +2 -2
- package/dist/commands/generate.d.ts +1 -1
- package/dist/commands/generate.js +1 -1
- package/dist/commands/github.d.ts +1 -1
- package/dist/commands/github.js +2 -2
- package/dist/commands/import-project.d.ts +1 -1
- package/dist/commands/import-project.js +2 -2
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.js +3 -3
- package/dist/commands/insights.d.ts +1 -1
- package/dist/commands/insights.js +2 -2
- package/dist/commands/inspect-link.d.ts +1 -1
- package/dist/commands/inspect-link.js +2 -2
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/logs.d.ts +1 -1
- package/dist/commands/logs.js +2 -2
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/migrate-supabase-map.d.ts +1 -1
- package/dist/commands/migrate-supabase-recipes.d.ts +28 -0
- package/dist/commands/migrate-supabase-recipes.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-recipes.js +92 -0
- package/dist/commands/migrate-supabase-recipes.js.map +1 -0
- package/dist/commands/migrate-supabase-rewrite.d.ts +8 -3
- package/dist/commands/migrate-supabase-rewrite.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-rewrite.js +155 -11
- package/dist/commands/migrate-supabase-rewrite.js.map +1 -1
- package/dist/commands/migrate-supabase-scaffold.d.ts +25 -0
- package/dist/commands/migrate-supabase-scaffold.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-scaffold.js +234 -0
- package/dist/commands/migrate-supabase-scaffold.js.map +1 -0
- package/dist/commands/migrate-supabase-schema.d.ts +4 -4
- package/dist/commands/migrate-supabase-schema.js +4 -4
- package/dist/commands/migrate-supabase-scripts.d.ts +1 -1
- package/dist/commands/migrate-supabase-sdk.d.ts +34 -0
- package/dist/commands/migrate-supabase-sdk.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-sdk.js +169 -0
- package/dist/commands/migrate-supabase-sdk.js.map +1 -1
- package/dist/commands/migrate-supabase-status.d.ts +92 -0
- package/dist/commands/migrate-supabase-status.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-status.js +470 -0
- package/dist/commands/migrate-supabase-status.js.map +1 -0
- package/dist/commands/migrate-supabase-walker.d.ts +15 -1
- package/dist/commands/migrate-supabase-walker.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-walker.js +49 -5
- package/dist/commands/migrate-supabase-walker.js.map +1 -1
- package/dist/commands/migrate-supabase.d.ts +2 -2
- package/dist/commands/migrate-supabase.js +1 -1
- package/dist/commands/open.d.ts +1 -1
- package/dist/commands/open.js +2 -2
- package/dist/commands/preview-branch.d.ts +1 -1
- package/dist/commands/preview-branch.js +2 -2
- package/dist/commands/publish-api-error.d.ts +1 -1
- package/dist/commands/publish-api-error.js +1 -1
- package/dist/commands/publish-failure.d.ts +3 -3
- package/dist/commands/publish-failure.js +3 -3
- package/dist/commands/publish.d.ts +3 -3
- package/dist/commands/publish.js +13 -13
- package/dist/commands/push.d.ts +2 -2
- package/dist/commands/push.js +8 -8
- package/dist/commands/redeploy.d.ts +2 -2
- package/dist/commands/redeploy.js +4 -4
- package/dist/commands/rename.d.ts +1 -1
- package/dist/commands/rename.js +2 -2
- package/dist/commands/reproduce.d.ts +1 -1
- package/dist/commands/reproduce.js +1 -1
- package/dist/commands/reset-superuser.d.ts +1 -1
- package/dist/commands/reset-superuser.js +2 -2
- package/dist/commands/restore.d.ts +1 -1
- package/dist/commands/restore.js +2 -2
- package/dist/commands/resume.d.ts +1 -1
- package/dist/commands/resume.js +2 -2
- package/dist/commands/rollback.d.ts +1 -1
- package/dist/commands/rollback.js +2 -2
- package/dist/commands/sharing.d.ts +1 -1
- package/dist/commands/sharing.js +2 -2
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/transfers.d.ts +1 -1
- package/dist/commands/transfers.js +2 -2
- package/dist/commands/unsuspend.d.ts +1 -1
- package/dist/commands/versions.d.ts +1 -1
- package/dist/commands/versions.js +2 -2
- package/dist/commands/wait-deploy.d.ts +3 -3
- package/dist/commands/wait-deploy.js +3 -3
- package/dist/commands/whoami.d.ts +1 -1
- package/dist/detect.js +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +78 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -74
- package/dist/index.js.map +1 -1
- package/dist/plans.d.ts +0 -1
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +0 -6
- package/dist/plans.js.map +1 -1
- package/dist/poll-deployment.d.ts +1 -1
- package/dist/recovery.d.ts +1 -1
- package/dist/structured-error-codes.d.ts +1 -1
- package/dist/templates/ai-files/index.js +2 -2
- package/package.json +11 -3
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare function themeColorForToken(token: string | null): string;
|
|
2
|
+
/**
|
|
3
|
+
* Minimal VALID manifest.json starter. It is a file the user downloads and
|
|
4
|
+
* serves verbatim, so it must parse — no JS comments. Icons are intentionally
|
|
5
|
+
* omitted (we can't generate the user's artwork). `theme_color` is the app's
|
|
6
|
+
* accent token (brand green by default); `background_color` stays a neutral
|
|
7
|
+
* white. start_url is "/" (served from the app's own origin).
|
|
8
|
+
*/
|
|
9
|
+
export declare function manifestStarter({ name, themeColorHex, }: {
|
|
10
|
+
name: string;
|
|
11
|
+
themeColorHex: string;
|
|
12
|
+
}): string;
|
|
13
|
+
/** Minimal offline-shell service worker (caches the app shell on install). */
|
|
14
|
+
export declare function serviceWorkerStarter(): string;
|
|
15
|
+
/** The one-line registration snippet to add to the app's entry HTML/JS. */
|
|
16
|
+
export declare function swRegistrationSnippet(): string;
|
|
17
|
+
/** Pre-filled Bubblewrap init/build, pointed at the app's manifest. */
|
|
18
|
+
export declare function bubblewrapCommand({ url }: {
|
|
19
|
+
url: string;
|
|
20
|
+
}): string;
|
|
21
|
+
/** capacitor.config.ts pointed at the app's URL. */
|
|
22
|
+
export declare function capacitorConfig({ name, url }: {
|
|
23
|
+
name: string;
|
|
24
|
+
url: string;
|
|
25
|
+
}): string;
|
|
26
|
+
/**
|
|
27
|
+
* Digital Asset Links (assetlinks.json) for a Trusted Web Activity. Inputs
|
|
28
|
+
* come from a form — package name + signing-cert SHA-256 don't exist until the
|
|
29
|
+
* user creates and signs the Android app, so empty inputs keep placeholders.
|
|
30
|
+
*/
|
|
31
|
+
export declare function assetlinksJson({ packageName, sha256Fingerprint, }: {
|
|
32
|
+
packageName: string;
|
|
33
|
+
sha256Fingerprint: string;
|
|
34
|
+
}): string;
|
|
35
|
+
/**
|
|
36
|
+
* Apple App Site Association (AASA) for iOS universal links. Form inputs;
|
|
37
|
+
* empty Team ID / bundle ID keep placeholders. Served with NO extension as
|
|
38
|
+
* application/json on the app's origin.
|
|
39
|
+
*/
|
|
40
|
+
export declare function appleAppSiteAssociation({ teamId, bundleId, }: {
|
|
41
|
+
teamId: string;
|
|
42
|
+
bundleId: string;
|
|
43
|
+
}): string;
|
|
44
|
+
//# sourceMappingURL=appstore-artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appstore-artifacts.d.ts","sourceRoot":"","sources":["../src/appstore-artifacts.ts"],"names":[],"mappings":"AAwBA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAG/D;AAiBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,aAAa,GACd,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAaT;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,IAAI,MAAM,CAyB7C;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKlE;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAUpF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,iBAAiB,GAClB,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAWT;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAST"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// App-store kit generators (FUTURE_app-store-publishing-bridge).
|
|
2
|
+
//
|
|
3
|
+
// Pure, dependency-free functions that emit *starter* artifacts for taking a
|
|
4
|
+
// Percher-hosted app to the app stores. Shared by the dashboard "App store kit"
|
|
5
|
+
// panel (C2), the CLI `percher appstore-kit`, and the MCP `percher_appstore_kit`
|
|
6
|
+
// tool (D) so all three stay byte-identical. They also track the templates in
|
|
7
|
+
// the docs section app/docs/sections/app-stores.tsx — keep them in step.
|
|
8
|
+
//
|
|
9
|
+
// None of these make the app a PWA or publish it anywhere; they produce files
|
|
10
|
+
// the user still has to wire up + serve (or let Percher edge-serve, C3).
|
|
11
|
+
const BRAND_GREEN = "#2d6a4f";
|
|
12
|
+
// Maps the owner-picked iconColour token to a literal brand hex for the
|
|
13
|
+
// manifest's theme_color/background. A manifest is a downloadable file, so it
|
|
14
|
+
// needs a real hex — not a CSS var. Defaults to brand green when null/unknown.
|
|
15
|
+
const ICON_COLOUR_HEX = {
|
|
16
|
+
green: BRAND_GREEN,
|
|
17
|
+
terracotta: "#d0653a",
|
|
18
|
+
blue: "#4a6fa4",
|
|
19
|
+
purple: "#6e4dba",
|
|
20
|
+
olive: "#b8923a",
|
|
21
|
+
};
|
|
22
|
+
export function themeColorForToken(token) {
|
|
23
|
+
if (token && token in ICON_COLOUR_HEX)
|
|
24
|
+
return ICON_COLOUR_HEX[token] ?? BRAND_GREEN;
|
|
25
|
+
return BRAND_GREEN;
|
|
26
|
+
}
|
|
27
|
+
/** Best-effort hostname from an app URL; falls back to the raw input. */
|
|
28
|
+
function hostFromUrl(url) {
|
|
29
|
+
try {
|
|
30
|
+
return new URL(url).host;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return url.replace(/^https?:\/\//, "").replace(/\/.*$/, "");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** A short_name derived from the app name — letters/digits only, capped at 12. */
|
|
37
|
+
function shortName(name) {
|
|
38
|
+
const cleaned = name.replace(/[^A-Za-z0-9]/g, "");
|
|
39
|
+
return (cleaned || "App").slice(0, 12);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Minimal VALID manifest.json starter. It is a file the user downloads and
|
|
43
|
+
* serves verbatim, so it must parse — no JS comments. Icons are intentionally
|
|
44
|
+
* omitted (we can't generate the user's artwork). `theme_color` is the app's
|
|
45
|
+
* accent token (brand green by default); `background_color` stays a neutral
|
|
46
|
+
* white. start_url is "/" (served from the app's own origin).
|
|
47
|
+
*/
|
|
48
|
+
export function manifestStarter({ name, themeColorHex, }) {
|
|
49
|
+
return JSON.stringify({
|
|
50
|
+
name,
|
|
51
|
+
short_name: shortName(name),
|
|
52
|
+
start_url: "/",
|
|
53
|
+
display: "standalone",
|
|
54
|
+
background_color: "#ffffff",
|
|
55
|
+
theme_color: themeColorHex,
|
|
56
|
+
}, null, 2);
|
|
57
|
+
}
|
|
58
|
+
/** Minimal offline-shell service worker (caches the app shell on install). */
|
|
59
|
+
export function serviceWorkerStarter() {
|
|
60
|
+
return `// sw.js — minimal offline shell. Drop in at your app root and serve from /sw.js.
|
|
61
|
+
const CACHE = "app-shell-v1";
|
|
62
|
+
const SHELL = ["/"];
|
|
63
|
+
|
|
64
|
+
self.addEventListener("install", (event) => {
|
|
65
|
+
event.waitUntil(caches.open(CACHE).then((cache) => cache.addAll(SHELL)));
|
|
66
|
+
self.skipWaiting();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
self.addEventListener("activate", (event) => {
|
|
70
|
+
event.waitUntil(
|
|
71
|
+
caches.keys().then((keys) =>
|
|
72
|
+
Promise.all(keys.filter((k) => k !== CACHE).map((k) => caches.delete(k))),
|
|
73
|
+
),
|
|
74
|
+
);
|
|
75
|
+
self.clients.claim();
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
self.addEventListener("fetch", (event) => {
|
|
79
|
+
if (event.request.method !== "GET") return;
|
|
80
|
+
event.respondWith(
|
|
81
|
+
caches.match(event.request).then((cached) => cached || fetch(event.request)),
|
|
82
|
+
);
|
|
83
|
+
});`;
|
|
84
|
+
}
|
|
85
|
+
/** The one-line registration snippet to add to the app's entry HTML/JS. */
|
|
86
|
+
export function swRegistrationSnippet() {
|
|
87
|
+
return `if ("serviceWorker" in navigator) {
|
|
88
|
+
navigator.serviceWorker.register("/sw.js");
|
|
89
|
+
}`;
|
|
90
|
+
}
|
|
91
|
+
/** Pre-filled Bubblewrap init/build, pointed at the app's manifest. */
|
|
92
|
+
export function bubblewrapCommand({ url }) {
|
|
93
|
+
const host = hostFromUrl(url);
|
|
94
|
+
return `# generate the Android project, pointed at your manifest
|
|
95
|
+
npx @bubblewrap/cli init --manifest https://${host}/manifest.json
|
|
96
|
+
npx @bubblewrap/cli build`;
|
|
97
|
+
}
|
|
98
|
+
/** capacitor.config.ts pointed at the app's URL. */
|
|
99
|
+
export function capacitorConfig({ name, url }) {
|
|
100
|
+
const host = hostFromUrl(url);
|
|
101
|
+
return `import type { CapacitorConfig } from "@capacitor/cli";
|
|
102
|
+
const config: CapacitorConfig = {
|
|
103
|
+
appId: "app.percher.yourapp",
|
|
104
|
+
appName: ${JSON.stringify(name)},
|
|
105
|
+
webDir: "dist",
|
|
106
|
+
server: { url: "https://${host}", cleartext: false },
|
|
107
|
+
};
|
|
108
|
+
export default config;`;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Digital Asset Links (assetlinks.json) for a Trusted Web Activity. Inputs
|
|
112
|
+
* come from a form — package name + signing-cert SHA-256 don't exist until the
|
|
113
|
+
* user creates and signs the Android app, so empty inputs keep placeholders.
|
|
114
|
+
*/
|
|
115
|
+
export function assetlinksJson({ packageName, sha256Fingerprint, }) {
|
|
116
|
+
const pkg = packageName.trim() || "app.percher.yourapp";
|
|
117
|
+
const fp = sha256Fingerprint.trim() || "<your signing cert SHA-256>";
|
|
118
|
+
return `[{
|
|
119
|
+
"relation": ["delegate_permission/common.handle_all_urls"],
|
|
120
|
+
"target": {
|
|
121
|
+
"namespace": "android_app",
|
|
122
|
+
"package_name": ${JSON.stringify(pkg)},
|
|
123
|
+
"sha256_cert_fingerprints": [${JSON.stringify(fp)}]
|
|
124
|
+
}
|
|
125
|
+
}]`;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Apple App Site Association (AASA) for iOS universal links. Form inputs;
|
|
129
|
+
* empty Team ID / bundle ID keep placeholders. Served with NO extension as
|
|
130
|
+
* application/json on the app's origin.
|
|
131
|
+
*/
|
|
132
|
+
export function appleAppSiteAssociation({ teamId, bundleId, }) {
|
|
133
|
+
const team = teamId.trim() || "TEAMID";
|
|
134
|
+
const bundle = bundleId.trim() || "app.percher.yourapp";
|
|
135
|
+
return `{
|
|
136
|
+
"applinks": {
|
|
137
|
+
"apps": [],
|
|
138
|
+
"details": [{ "appID": ${JSON.stringify(`${team}.${bundle}`)}, "paths": ["*"] }]
|
|
139
|
+
}
|
|
140
|
+
}`;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=appstore-artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appstore-artifacts.js","sourceRoot":"","sources":["../src/appstore-artifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DeletionPreview } from "@percher/client";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { Context } from "../context";
|
|
3
|
+
import type { Context } from "../context.js";
|
|
4
4
|
/**
|
|
5
5
|
* IMPLEMENTING-followup item 7 — GDPR account commands. The server
|
|
6
6
|
* already exposes GET /account/export (Art. 20) and DELETE /account
|
package/dist/commands/account.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
2
|
import { join, resolve } from "node:path";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { PercherCoreError } from "../errors";
|
|
5
|
-
import { writeResponseToFile } from "../stream-utils";
|
|
4
|
+
import { PercherCoreError } from "../errors.js";
|
|
5
|
+
import { writeResponseToFile } from "../stream-utils.js";
|
|
6
6
|
/**
|
|
7
7
|
* IMPLEMENTING-followup item 7 — GDPR account commands. The server
|
|
8
8
|
* already exposes GET /account/export (Art. 20) and DELETE /account
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AdminReconcileRoutesResult } from "@percher/client";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { Context } from "../context";
|
|
3
|
+
import type { Context } from "../context.js";
|
|
4
4
|
/**
|
|
5
5
|
* FUTURE18 Fas 4 — `percher admin reconcile-routes` command. Thin
|
|
6
6
|
* wrapper around the client's `adminReconcileRoutes` so the CLI,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { type FileStatus } from "../ai-files-manifest";
|
|
3
|
-
import type { Context } from "../context";
|
|
2
|
+
import { type FileStatus } from "../ai-files-manifest.js";
|
|
3
|
+
import type { Context } from "../context.js";
|
|
4
4
|
export declare const aiFilesInstallInputSchema: z.ZodObject<{
|
|
5
5
|
force: z.ZodOptional<z.ZodBoolean>;
|
|
6
6
|
}, z.core.$strip>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { classifyFile, hashContent, hasSymlinkInPath, loadManifest, saveManifest, } from "../ai-files-manifest";
|
|
5
|
-
import { AI_FILE_TEMPLATES } from "../templates/ai-files";
|
|
4
|
+
import { classifyFile, hashContent, hasSymlinkInPath, loadManifest, saveManifest, } from "../ai-files-manifest.js";
|
|
5
|
+
import { AI_FILE_TEMPLATES } from "../templates/ai-files/index.js";
|
|
6
6
|
export const aiFilesInstallInputSchema = z.object({
|
|
7
7
|
force: z.boolean().optional(),
|
|
8
8
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AppResources } from "@percher/client";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { Context } from "../context";
|
|
3
|
+
import type { Context } from "../context.js";
|
|
4
4
|
export declare const appResourcesInputSchema: z.ZodObject<{
|
|
5
5
|
app: z.ZodOptional<z.ZodString>;
|
|
6
6
|
window: z.ZodOptional<z.ZodEnum<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
-
import { PercherCoreError } from "../errors";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
3
|
+
import { PercherCoreError } from "../errors.js";
|
|
4
4
|
export const appResourcesInputSchema = z.object({
|
|
5
5
|
app: z.string().optional(),
|
|
6
6
|
window: z.enum(["1h", "24h", "7d", "30d"]).optional(),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AppTopology } from "@percher/client";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { Context } from "../context";
|
|
3
|
+
import type { Context } from "../context.js";
|
|
4
4
|
export declare const appTopologyInputSchema: z.ZodObject<{
|
|
5
5
|
app: z.ZodOptional<z.ZodString>;
|
|
6
6
|
}, z.core.$strip>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
-
import { PercherCoreError } from "../errors";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
3
|
+
import { PercherCoreError } from "../errors.js";
|
|
4
4
|
export const appTopologyInputSchema = z.object({
|
|
5
5
|
app: z.string().optional(),
|
|
6
6
|
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { Context } from "../context.js";
|
|
3
|
+
/**
|
|
4
|
+
* FUTURE_app-store-publishing-bridge D — emit the app-store starter artifacts
|
|
5
|
+
* from the terminal / an AI assistant, the CLI+MCP parity for the dashboard's
|
|
6
|
+
* "App store kit" panel (C2). Writes manifest.json, sw.js, capacitor.config.ts,
|
|
7
|
+
* and `.well-known/{assetlinks.json,apple-app-site-association}` templates into
|
|
8
|
+
* the project, and returns the Bubblewrap command + SW registration snippet to
|
|
9
|
+
* print. Pure local file emission — no network, no auth. Existing files are
|
|
10
|
+
* skipped unless `force`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const appstoreKitInputSchema: z.ZodObject<{
|
|
13
|
+
name: z.ZodOptional<z.ZodString>;
|
|
14
|
+
url: z.ZodOptional<z.ZodString>;
|
|
15
|
+
packageName: z.ZodOptional<z.ZodString>;
|
|
16
|
+
fingerprint: z.ZodOptional<z.ZodString>;
|
|
17
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
18
|
+
bundleId: z.ZodOptional<z.ZodString>;
|
|
19
|
+
force: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
+
outDir: z.ZodOptional<z.ZodString>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export type AppstoreKitInput = z.infer<typeof appstoreKitInputSchema>;
|
|
23
|
+
export interface AppstoreKitResult {
|
|
24
|
+
appName: string;
|
|
25
|
+
appUrl: string;
|
|
26
|
+
/** Project-relative paths actually written. */
|
|
27
|
+
written: string[];
|
|
28
|
+
/** Project-relative paths skipped because they exist and force was not set. */
|
|
29
|
+
skipped: string[];
|
|
30
|
+
/** The Bubblewrap init/build command, pointed at the app's manifest. */
|
|
31
|
+
bubblewrapCommand: string;
|
|
32
|
+
/** The one-line service-worker registration snippet for the app's entry. */
|
|
33
|
+
swRegistration: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function appstoreKit(ctx: Context, input?: AppstoreKitInput): Promise<AppstoreKitResult>;
|
|
36
|
+
//# sourceMappingURL=appstore-kit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appstore-kit.d.ts","sourceRoot":"","sources":["../../src/commands/appstore-kit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;iBAiBjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,GAAE,gBAAqB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA8D5B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
5
|
+
import { appleAppSiteAssociation, assetlinksJson, bubblewrapCommand, capacitorConfig, manifestStarter, serviceWorkerStarter, swRegistrationSnippet, themeColorForToken, } from "../appstore-artifacts.js";
|
|
6
|
+
import { PercherCoreError } from "../errors.js";
|
|
7
|
+
/**
|
|
8
|
+
* FUTURE_app-store-publishing-bridge D — emit the app-store starter artifacts
|
|
9
|
+
* from the terminal / an AI assistant, the CLI+MCP parity for the dashboard's
|
|
10
|
+
* "App store kit" panel (C2). Writes manifest.json, sw.js, capacitor.config.ts,
|
|
11
|
+
* and `.well-known/{assetlinks.json,apple-app-site-association}` templates into
|
|
12
|
+
* the project, and returns the Bubblewrap command + SW registration snippet to
|
|
13
|
+
* print. Pure local file emission — no network, no auth. Existing files are
|
|
14
|
+
* skipped unless `force`.
|
|
15
|
+
*/
|
|
16
|
+
export const appstoreKitInputSchema = z.object({
|
|
17
|
+
/** App name (defaults to percher.toml's [app].name, then the directory name). */
|
|
18
|
+
name: z.string().optional(),
|
|
19
|
+
/** App URL (defaults to https://<name>.percher.run). */
|
|
20
|
+
url: z.string().optional(),
|
|
21
|
+
/** Android package name for assetlinks.json (placeholder if omitted). */
|
|
22
|
+
packageName: z.string().optional(),
|
|
23
|
+
/** Signing-cert SHA-256 fingerprint for assetlinks.json (placeholder if omitted). */
|
|
24
|
+
fingerprint: z.string().optional(),
|
|
25
|
+
/** Apple Team ID for apple-app-site-association (placeholder if omitted). */
|
|
26
|
+
teamId: z.string().optional(),
|
|
27
|
+
/** Apple bundle ID for apple-app-site-association (placeholder if omitted). */
|
|
28
|
+
bundleId: z.string().optional(),
|
|
29
|
+
/** Overwrite files that already exist (default: skip them). */
|
|
30
|
+
force: z.boolean().optional(),
|
|
31
|
+
/** Output directory, relative to the project root (default: "."). */
|
|
32
|
+
outDir: z.string().optional(),
|
|
33
|
+
});
|
|
34
|
+
export async function appstoreKit(ctx, input = {}) {
|
|
35
|
+
const name = (input.name ?? readPercherTomlAppName(ctx.cwd) ?? basename(ctx.cwd) ?? "app").trim() || "app";
|
|
36
|
+
const url = input.url?.trim() || `https://${name}.percher.run`;
|
|
37
|
+
const themeHex = themeColorForToken(null);
|
|
38
|
+
const base = resolve(ctx.cwd, input.outDir ?? ".");
|
|
39
|
+
// The schema says outDir is project-relative and the tool writes "into the
|
|
40
|
+
// project" — reject an absolute path or a `..` escape so a stray --out can't
|
|
41
|
+
// create/overwrite files outside the project (especially with --force).
|
|
42
|
+
const baseRel = relative(ctx.cwd, base);
|
|
43
|
+
if (baseRel.startsWith("..") || isAbsolute(baseRel)) {
|
|
44
|
+
throw new PercherCoreError("Output directory must stay inside the project", {
|
|
45
|
+
code: "appstore-kit.bad-out-dir",
|
|
46
|
+
hint: "Pass a path inside the current project (e.g. --out public), not an absolute or parent path.",
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// Posix-style relative paths for display; split on "/" to build the OS path.
|
|
50
|
+
const files = [
|
|
51
|
+
{ rel: "manifest.json", content: manifestStarter({ name, themeColorHex: themeHex }) },
|
|
52
|
+
{ rel: "sw.js", content: serviceWorkerStarter() },
|
|
53
|
+
{ rel: "capacitor.config.ts", content: capacitorConfig({ name, url }) },
|
|
54
|
+
{
|
|
55
|
+
rel: ".well-known/assetlinks.json",
|
|
56
|
+
content: assetlinksJson({
|
|
57
|
+
packageName: input.packageName ?? "",
|
|
58
|
+
sha256Fingerprint: input.fingerprint ?? "",
|
|
59
|
+
}),
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
rel: ".well-known/apple-app-site-association",
|
|
63
|
+
content: appleAppSiteAssociation({
|
|
64
|
+
teamId: input.teamId ?? "",
|
|
65
|
+
bundleId: input.bundleId ?? "",
|
|
66
|
+
}),
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
const written = [];
|
|
70
|
+
const skipped = [];
|
|
71
|
+
for (const f of files) {
|
|
72
|
+
const abs = join(base, ...f.rel.split("/"));
|
|
73
|
+
// Report the true project-relative path (includes outDir) so CLI/MCP output
|
|
74
|
+
// points at where the file actually landed, e.g. `public/manifest.json`.
|
|
75
|
+
const display = relative(ctx.cwd, abs).split(sep).join("/");
|
|
76
|
+
if (existsSync(abs) && !input.force) {
|
|
77
|
+
skipped.push(display);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
mkdirSync(dirname(abs), { recursive: true });
|
|
81
|
+
writeFileSync(abs, `${f.content}\n`, "utf8");
|
|
82
|
+
written.push(display);
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
appName: name,
|
|
86
|
+
appUrl: url,
|
|
87
|
+
written,
|
|
88
|
+
skipped,
|
|
89
|
+
bubblewrapCommand: bubblewrapCommand({ url }),
|
|
90
|
+
swRegistration: swRegistrationSnippet(),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=appstore-kit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appstore-kit.js","sourceRoot":"","sources":["../../src/commands/appstore-kit.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/billing.js
CHANGED
package/dist/commands/cache.d.ts
CHANGED
package/dist/commands/cache.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
-
import { PercherCoreError } from "../errors";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
3
|
+
import { PercherCoreError } from "../errors.js";
|
|
4
4
|
export const cacheResetInputSchema = z.object({
|
|
5
5
|
app: z.string().optional(),
|
|
6
6
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { Context } from "../context";
|
|
2
|
+
import type { Context } from "../context.js";
|
|
3
3
|
export declare const capabilitiesInputSchema: z.ZodObject<{}, z.core.$strip>;
|
|
4
4
|
export type CapabilitiesInput = z.infer<typeof capabilitiesInputSchema>;
|
|
5
5
|
/** Discovery: platform features + account plan, limits and usage. */
|
package/dist/commands/claim.d.ts
CHANGED
package/dist/commands/claim.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clearAnonClaim, getAnonClaim, listAnonClaimApps } from "@percher/client";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
4
4
|
export const claimInputSchema = z.object({
|
|
5
5
|
app: z
|
|
6
6
|
.string()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { Context } from "../context";
|
|
3
|
-
import { type ScaffoldResult } from "../templates";
|
|
2
|
+
import type { Context } from "../context.js";
|
|
3
|
+
import { type ScaffoldResult } from "../templates.js";
|
|
4
4
|
export declare const createInputSchema: z.ZodObject<{
|
|
5
5
|
name: z.ZodString;
|
|
6
6
|
template: z.ZodString;
|
package/dist/commands/create.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { join, resolve } from "node:path";
|
|
2
2
|
import { APP_NAME_RE } from "@percher/shared";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { PercherCoreError } from "../errors";
|
|
5
|
-
import { listTemplates, scaffoldTemplate } from "../templates";
|
|
4
|
+
import { PercherCoreError } from "../errors.js";
|
|
5
|
+
import { listTemplates, scaffoldTemplate } from "../templates.js";
|
|
6
6
|
export const createInputSchema = z.object({
|
|
7
7
|
name: z
|
|
8
8
|
.string()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
-
import { PercherCoreError } from "../errors";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
3
|
+
import { PercherCoreError } from "../errors.js";
|
|
4
4
|
export const dashboardInputSchema = z.object({
|
|
5
5
|
app: z.string().optional(),
|
|
6
6
|
tab: z.string().optional(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
4
|
-
import { PercherCoreError } from "../errors";
|
|
5
|
-
import { writeResponseToFile } from "../stream-utils";
|
|
3
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
4
|
+
import { PercherCoreError } from "../errors.js";
|
|
5
|
+
import { writeResponseToFile } from "../stream-utils.js";
|
|
6
6
|
export const dataExportInputSchema = z.object({
|
|
7
7
|
app: z.string().optional().describe("App name or id. Defaults to the app in percher.toml."),
|
|
8
8
|
out: z
|
package/dist/commands/data.d.ts
CHANGED
package/dist/commands/data.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
-
import { PercherCoreError } from "../errors";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
3
|
+
import { PercherCoreError } from "../errors.js";
|
|
4
4
|
export const dataInputSchema = z.object({
|
|
5
5
|
app: z.string().optional(),
|
|
6
6
|
json: z.boolean().optional(),
|
package/dist/commands/delete.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
-
import { PercherCoreError } from "../errors";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
3
|
+
import { PercherCoreError } from "../errors.js";
|
|
4
4
|
export const deleteInputSchema = z.object({
|
|
5
5
|
app: z.string().optional().describe("App name to delete (defaults to percher.toml app name)"),
|
|
6
6
|
confirm: z
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Deployment } from "@percher/client";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { Context } from "../context";
|
|
3
|
+
import type { Context } from "../context.js";
|
|
4
4
|
export declare const deploysListInputSchema: z.ZodObject<{
|
|
5
5
|
app: z.ZodOptional<z.ZodString>;
|
|
6
6
|
limit: z.ZodOptional<z.ZodNumber>;
|
package/dist/commands/deploys.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PercherApiError } from "@percher/client";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { readPercherTomlAppName } from "../app-name";
|
|
4
|
-
import { PercherCoreError } from "../errors";
|
|
3
|
+
import { readPercherTomlAppName } from "../app-name.js";
|
|
4
|
+
import { PercherCoreError } from "../errors.js";
|
|
5
5
|
export const deploysListInputSchema = z.object({
|
|
6
6
|
app: z.string().optional(),
|
|
7
7
|
limit: z.number().int().positive().max(100).optional(),
|
package/dist/commands/dev.d.ts
CHANGED