@popcraft/cli 0.5.1 → 0.6.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 (2) hide show
  1. package/dist/popcraft.mjs +103 -248
  2. package/package.json +2 -2
package/dist/popcraft.mjs CHANGED
@@ -724,10 +724,11 @@ var init_openapi = __esm({
724
724
  connections: arr(obj({ id: str, provider: str, authKind: { type: "string", enum: ["oauth", "token"] }, account: { ...str, description: "The account at the provider" }, scopes: arr(str), createdAt: iso, lastUsedAt: { type: ["string", "null"], format: "date-time" } }, ["id", "provider", "authKind", "account", "createdAt"]))
725
725
  }, ["manifest", "available", "connections"]),
726
726
  Resource: obj({ id: str, name: str, detail: str }, ["id", "name"]),
727
+ Candidate: obj({ connectionId: str, provider: str, account: str, target: arr(ref("Resource")) }, ["connectionId", "provider", "account", "target"]),
727
728
  ResourceLevel: obj({ level: { oneOf: [{ type: "null" }, obj({ id: str, label: str }, ["id", "label"])], description: "The level these are: owner, repo, team, project. null when the path is complete" }, resources: arr(ref("Resource")), canCreate: bool }, ["level", "resources", "canCreate"]),
728
729
  DestinationDeploy: obj({ version: int, at: iso, url: str, ref: { ...str, description: "A commit sha or a deployment id" }, status: { type: "string", enum: ["ready", "building", "failed"] }, error: str }, ["version", "at", "url", "ref", "status"]),
729
730
  Destination: obj({ id: str, capability: { type: "string", enum: ["repo", "deploy"] }, target: arr(obj({ id: str, name: str }, ["id", "name"])), lastDeploy: { oneOf: [{ type: "null" }, ref("DestinationDeploy")] }, createdAt: iso, connection: obj({ id: str, provider: str, account: str }, ["id", "provider", "account"]) }, ["id", "capability", "target", "lastDeploy", "connection"]),
730
- DestinationCreate: obj({ connectionId: str, capability: { type: "string", enum: ["repo", "deploy"] }, target: { ...arr(obj({ id: str, name: str }, ["id"])), description: "One resource per level, outermost first: [owner, repository] or [team, project]" } }, ["connectionId", "capability", "target"]),
731
+ DestinationCreate: obj({ connectionId: str, capability: { type: "string", enum: ["repo", "deploy"] }, target: { ...arr(obj({ id: str, name: str }, ["id"])), description: "One resource per level, outermost first: [owner, repository] or [team, project]. Leave out with `create`" }, create: { type: "boolean", enum: [true], description: "Make a new one named after the site instead of choosing `target`" }, provider: { ...str, description: "With `create`: whose account (github, vercel), when `connectionId` is not given" } }, ["capability"]),
731
732
  SiteDatabase: obj({ database: { oneOf: [{ type: "null" }, obj({ target: arr(obj({ id: str, name: str }, ["id", "name"])), connection: obj({ id: str, provider: str, account: str }, ["id", "provider", "account"]), attachedAt: iso }, ["target", "connection", "attachedAt"])], description: "null when the site has no database" } }, ["database"]),
732
733
  Submission: obj({ id: str, form: { ...str, description: "The form's name" }, data: { type: "object", additionalProperties: str, description: "The fields as sent" }, createdAt: iso }, ["id", "form", "data", "createdAt"]),
733
734
  IntegrationList: obj({ integrations: arr(ref("Integration")), manages: { ...bool, description: "Whether you can connect and disconnect accounts (workspace owners and admins)" } }, ["integrations", "manages"]),
@@ -931,6 +932,12 @@ Lists are paged: follow \`nextCursor\` (passing it as \`?cursor=\`) until it is
931
932
  parameters: [id("id", "Workspace id (from `GET /me`)")]
932
933
  })
933
934
  },
935
+ "/workspaces/{id}/integrations/candidates": {
936
+ get: op("Integrations", "Every place for one use, across connected accounts", "integrations:read", ok(obj({ candidates: arr(ref("Candidate")) }, ["candidates"])), {
937
+ description: "Every database, repository or hosting project the workspace's connected accounts hold, as one list (each a complete `target` inside a connection, ready for attaching or adding). The last-used account's come first; a large account is cut short, and the list is cached for a minute.",
938
+ parameters: [id("id", "Workspace id (from `GET /me`)"), query("capability", { type: "string", enum: ["repo", "deploy", "database"] }, "What the place is for", true)]
939
+ })
940
+ },
934
941
  "/integrations/connections/{id}/resources": {
935
942
  get: op("Integrations", "What a connected account holds, one level at a time", "integrations:read", ok(ref("ResourceLevel")), {
936
943
  description: "A connection is an account: it holds several repositories, projects or databases. Lists the level after `path` (omit `path` for the outermost).",
@@ -940,7 +947,7 @@ Lists are paged: follow \`nextCursor\` (passing it as \`?cursor=\`) until it is
940
947
  "/files/{key}/site/destinations": {
941
948
  get: op("Sites", "Where the site also goes", "files:read", ok(obj({ destinations: arr(ref("Destination")) }, ["destinations"])), { description: "The repositories and hosting projects this file's site is sent to, with what was last sent.", parameters: [key] }),
942
949
  post: op("Sites", "Add a destination", "sites:publish", null, {
943
- description: "Choose a repository (`repo`) or a hosting project (`deploy`) inside one of the workspace's connected accounts. Every level of `target` is checked against the account.",
950
+ description: "Choose a repository (`repo`) or a hosting project (`deploy`) inside one of the workspace's connected accounts. Every level of `target` is checked against the account. Or send `create: true` with `capability` (and `provider` or `connectionId`) to make a new one named after the site.",
944
951
  parameters: [key],
945
952
  requestBody: { required: true, content: { "application/json": { schema: ref("DestinationCreate") } } },
946
953
  responses: { "201": ok(obj({ destination: ref("Destination") }, ["destination"]), "Added"), "404": { description: "The connection, or a level of the target, was not found", content: errBody } }
@@ -957,9 +964,9 @@ Lists are paged: follow \`nextCursor\` (passing it as \`?cursor=\`) until it is
957
964
  "/files/{key}/site/database": {
958
965
  get: op("Sites", "The database behind the site", "files:read", ok(ref("SiteDatabase")), { description: "Which database of the user's own the site keeps its form submissions in. The connection string is never returned.", parameters: [key] }),
959
966
  put: op("Sites", "Attach a database", "sites:publish", ok(ref("SiteDatabase")), {
960
- description: "Use a database inside one of the workspace's connected accounts (`target`: organization, project, database for Neon). The site's table (`popcraft_submissions`) is made there if it is not.",
967
+ description: "Use a database inside one of the workspace's connected accounts (`target`: the levels its integration lists, e.g. organization, project, database for Neon; organization, project for Supabase). Or send `create: true` (with `provider` or `connectionId`, else the account last used) to make a new one named after the site. The site's tables are made there if they are not.",
961
968
  parameters: [key],
962
- requestBody: { required: true, content: { "application/json": { schema: obj({ connectionId: str, target: arr(obj({ id: str, name: str }, ["id"])) }, ["connectionId", "target"]) } } },
969
+ requestBody: { required: true, content: { "application/json": { schema: { oneOf: [obj({ connectionId: str, target: arr(obj({ id: str, name: str }, ["id"])) }, ["connectionId", "target"]), obj({ create: { type: "boolean", enum: [true] }, provider: str, connectionId: str }, ["create"])] } } } },
963
970
  responses: { "404": { description: "The connection, or a level of the target, was not found", content: errBody }, "502": { description: "The provider refused", content: errBody } }
964
971
  }),
965
972
  delete: op("Sites", "Detach the database", "sites:publish", ok(ref("SiteDatabase")), { description: "The site stops keeping submissions. What is in the database stays.", parameters: [key] })
@@ -1166,7 +1173,7 @@ function operations(spec = openapi) {
1166
1173
  }
1167
1174
  async function call(target2, method, path, opts = {}) {
1168
1175
  const qs = new URLSearchParams(opts.query ?? {}).toString();
1169
- const headers = { "user-agent": `popcraft-cli/${"0.5.1"}`, ...opts.headers };
1176
+ const headers = { "user-agent": `popcraft-cli/${"0.6.0"}`, ...opts.headers };
1170
1177
  if (target2.token) headers.authorization = `Bearer ${target2.token}`;
1171
1178
  if (opts.contentType) headers["content-type"] = opts.contentType;
1172
1179
  try {
@@ -32521,19 +32528,14 @@ var init_en2 = __esm({
32521
32528
  "designPanel.visibilityFollowsAVariable": "Visibility follows a variable",
32522
32529
  "designPanel.webP": "WebP",
32523
32530
  "designPanel.wrap": "Wrap",
32524
- "destinations.account": "{name} \xB7 {account}",
32525
- "destinations.accountLabel": "Account",
32526
32531
  "destinations.add": "Add destination",
32527
- "destinations.addThis": "Add",
32528
32532
  "destinations.building": "Building",
32529
32533
  "destinations.cancel": "Cancel",
32530
32534
  "destinations.commit": "Version {n} \xB7 commit {ref}",
32531
- "destinations.connectFirst": "Connect a GitHub or Vercel account first.",
32532
32535
  "destinations.deployment": "Version {n} \xB7 deployment",
32533
32536
  "destinations.failed": "Something went wrong. Try again.",
32534
- "destinations.none": "Send this site to a repository of yours on GitHub, or deploy it to a project of yours on Vercel.",
32537
+ "destinations.none": "Send this site to a repository of yours, or deploy it to a hosting project of yours: make one in a click, or use one you have.",
32535
32538
  "destinations.notSent": "Nothing sent yet",
32536
- "destinations.openIntegrations": "Integrations\u2026",
32537
32539
  "destinations.place": "{name} \xB7 {target}",
32538
32540
  "destinations.publishFirst": "Publish first",
32539
32541
  "destinations.remove": "Remove destination",
@@ -33878,6 +33880,17 @@ var init_en2 = __esm({
33878
33880
  "pixelToolbar.tileRightClickErasesPick": "Tile #{tileIndex} \xB7 Right-click erases (pick tiles in the design panel)",
33879
33881
  "pixelToolbar.tileStampT": "Tile stamp (T)",
33880
33882
  "pixelToolbar.tolerance": "Tolerance",
33883
+ "placePicker.askManager": "Ask a workspace owner or admin to connect {providers}.",
33884
+ "placePicker.connect": "Connect {provider}",
33885
+ "placePicker.connecting": "Connecting\u2026",
33886
+ "placePicker.create": "New {provider} {capability, select, database {database} repo {repository} deploy {project} other {place}}",
33887
+ "placePicker.creating": "Making it\u2026",
33888
+ "placePicker.empty": "Nothing found",
33889
+ "placePicker.existing": "Use one you have",
33890
+ "placePicker.failed": "Something went wrong. Try again.",
33891
+ "placePicker.loading": "Reading your accounts\u2026",
33892
+ "placePicker.place": "{provider} \xB7 {place}",
33893
+ "placePicker.search": "Or find one you have: {capability, select, database {a database} repo {a repository} deploy {a project} other {a repository or project}}\u2026",
33881
33894
  "planBadge.free": "Free",
33882
33895
  "planBadge.freePlan": "Free plan",
33883
33896
  "planDialog.aICredits": "AI credits",
@@ -34388,12 +34401,6 @@ var init_en2 = __esm({
34388
34401
  "resizeDialog.custom": "Custom\u2026",
34389
34402
  "resizeDialog.magicResize": "Magic resize",
34390
34403
  "resizeDialog.size": "Size",
34391
- "resourcePicker.choose": "Choose\u2026",
34392
- "resourcePicker.create": "Create",
34393
- "resourcePicker.createNew": "Create new\u2026",
34394
- "resourcePicker.failed": "Could not read the account. Try again.",
34395
- "resourcePicker.newName": "Name",
34396
- "resourcePicker.option": "{name} \xB7 {detail}",
34397
34404
  "restoreAccount.back": "Your account is back",
34398
34405
  "restoreAccount.backBody": "Your files, libraries, templates and plugins are where you left them. Teams need to invite you again.",
34399
34406
  "restoreAccount.couldNotRestore": "Your account could not be restored. Try again.",
@@ -34602,19 +34609,15 @@ var init_en2 = __esm({
34602
34609
  "showAdvanceControl.whenAnimationEnds": "When animation ends",
34603
34610
  "sidebar.overview": "Overview",
34604
34611
  "sidebarResizer.dragToResizeDoubleClick": "Drag to resize \xB7 double-click to reset",
34605
- "siteDatabase.attach": "Attach a database",
34606
- "siteDatabase.attaching": "Attaching\u2026",
34607
- "siteDatabase.attachThis": "Attach",
34608
34612
  "siteDatabase.close": "Close",
34609
- "siteDatabase.connectFirst": "Connect a Neon account first.",
34610
34613
  "siteDatabase.detach": "Detach",
34611
34614
  "siteDatabase.failed": "Something went wrong. Try again.",
34612
34615
  "siteDatabase.form": "Form",
34613
34616
  "siteDatabase.keeps": "The site's forms are saved here",
34614
34617
  "siteDatabase.loading": "Loading\u2026",
34615
- "siteDatabase.needsDatabase": "This site has accounts, and they will not work yet. Attach a database below, then turn on Visitors can sign in.",
34618
+ "siteDatabase.needsDatabase": "This site has accounts, and they will not work yet. Give it a database below: sign-in is turned on with it.",
34616
34619
  "siteDatabase.needsSignIn": "This site has accounts, and they will not work yet. Turn on Visitors can sign in.",
34617
- "siteDatabase.none": "Keep what the site's forms are sent in a database of your own.",
34620
+ "siteDatabase.none": "Keep what the site's forms are sent in a database of your own: make one in a click, or use one you have.",
34618
34621
  "siteDatabase.noSubmissions": "Nothing has been sent yet.",
34619
34622
  "siteDatabase.signIn": "Visitors can sign in",
34620
34623
  "siteDatabase.signInOff": "Turn on for a site with accounts: sign-up and sign-in forms, pages for signed-in visitors, and lists that are each visitor's own.",
@@ -36593,19 +36596,14 @@ var require_es = __commonJS({
36593
36596
  "designPanel.visibilityFollowsAVariable": "La visibilidad sigue una variable",
36594
36597
  "designPanel.webP": "WebP",
36595
36598
  "designPanel.wrap": "Ajustar",
36596
- "destinations.account": "{name} \xB7 {account}",
36597
- "destinations.accountLabel": "Cuenta",
36598
36599
  "destinations.add": "A\xF1adir destino",
36599
- "destinations.addThis": "A\xF1adir",
36600
36600
  "destinations.building": "Compilando",
36601
36601
  "destinations.cancel": "Cancelar",
36602
36602
  "destinations.commit": "Versi\xF3n {n} \xB7 commit {ref}",
36603
- "destinations.connectFirst": "Conecta primero una cuenta de GitHub o Vercel.",
36604
36603
  "destinations.deployment": "Versi\xF3n {n} \xB7 despliegue",
36605
36604
  "destinations.failed": "Algo sali\xF3 mal. Int\xE9ntalo de nuevo.",
36606
36605
  "destinations.none": "Env\xEDa este sitio a un repositorio tuyo en GitHub, o despli\xE9galo en un proyecto tuyo en Vercel.",
36607
36606
  "destinations.notSent": "Nada enviado a\xFAn",
36608
- "destinations.openIntegrations": "Integraciones\u2026",
36609
36607
  "destinations.place": "{name} \xB7 {target}",
36610
36608
  "destinations.publishFirst": "Publica primero",
36611
36609
  "destinations.remove": "Eliminar destino",
@@ -38448,12 +38446,6 @@ var require_es = __commonJS({
38448
38446
  "resizeDialog.custom": "Personalizado\u2026",
38449
38447
  "resizeDialog.magicResize": "Redimensionado m\xE1gico",
38450
38448
  "resizeDialog.size": "Tama\xF1o",
38451
- "resourcePicker.choose": "Elegir\u2026",
38452
- "resourcePicker.create": "Crear",
38453
- "resourcePicker.createNew": "Crear nuevo\u2026",
38454
- "resourcePicker.failed": "No se pudo leer la cuenta. Int\xE9ntalo de nuevo.",
38455
- "resourcePicker.newName": "Nombre",
38456
- "resourcePicker.option": "{name} \xB7 {detail}",
38457
38449
  "restoreAccount.back": "Tu cuenta ha sido recuperada",
38458
38450
  "restoreAccount.backBody": "Tus archivos, bibliotecas, plantillas y plugins est\xE1n donde los dejaste. Los equipos deber\xE1n invitarte de nuevo.",
38459
38451
  "restoreAccount.couldNotRestore": "No se pudo restaurar tu cuenta. Int\xE9ntalo de nuevo.",
@@ -38662,11 +38654,7 @@ var require_es = __commonJS({
38662
38654
  "showAdvanceControl.whenAnimationEnds": "Cuando la animaci\xF3n termina",
38663
38655
  "sidebar.overview": "Resumen",
38664
38656
  "sidebarResizer.dragToResizeDoubleClick": "Arrastra para redimensionar \xB7 doble clic para restablecer",
38665
- "siteDatabase.attach": "Conectar una base de datos",
38666
- "siteDatabase.attaching": "Conectando\u2026",
38667
- "siteDatabase.attachThis": "Conectar",
38668
38657
  "siteDatabase.close": "Cerrar",
38669
- "siteDatabase.connectFirst": "Conecta una cuenta de Neon primero.",
38670
38658
  "siteDatabase.detach": "Desconectar",
38671
38659
  "siteDatabase.failed": "Algo sali\xF3 mal. Int\xE9ntalo de nuevo.",
38672
38660
  "siteDatabase.form": "Formulario",
@@ -40652,19 +40640,14 @@ var require_fr = __commonJS({
40652
40640
  "designPanel.visibilityFollowsAVariable": "La visibilit\xE9 suit une variable",
40653
40641
  "designPanel.webP": "WebP",
40654
40642
  "designPanel.wrap": "Habillage",
40655
- "destinations.account": "{name} \xB7 {account}",
40656
- "destinations.accountLabel": "Compte",
40657
40643
  "destinations.add": "Ajouter une destination",
40658
- "destinations.addThis": "Ajouter",
40659
40644
  "destinations.building": "Construction",
40660
40645
  "destinations.cancel": "Annuler",
40661
40646
  "destinations.commit": "Version {n} \xB7 commit {ref}",
40662
- "destinations.connectFirst": "Connectez d\u2019abord un compte GitHub ou Vercel.",
40663
40647
  "destinations.deployment": "Version {n} \xB7 d\xE9ploiement",
40664
40648
  "destinations.failed": "Une erreur est survenue. Veuillez r\xE9essayer.",
40665
40649
  "destinations.none": "Envoyez ce site vers l\u2019un de vos d\xE9p\xF4ts sur GitHub, ou d\xE9ployez-le vers l\u2019un de vos projets sur Vercel.",
40666
40650
  "destinations.notSent": "Rien n\u2019a encore \xE9t\xE9 envoy\xE9",
40667
- "destinations.openIntegrations": "Int\xE9grations\u2026",
40668
40651
  "destinations.place": "{name} \xB7 {target}",
40669
40652
  "destinations.publishFirst": "Publiez d\u2019abord",
40670
40653
  "destinations.remove": "Supprimer la destination",
@@ -42507,12 +42490,6 @@ var require_fr = __commonJS({
42507
42490
  "resizeDialog.custom": "Personnalis\xE9\u2026",
42508
42491
  "resizeDialog.magicResize": "Redimensionnement magique",
42509
42492
  "resizeDialog.size": "Taille",
42510
- "resourcePicker.choose": "Choisir\u2026",
42511
- "resourcePicker.create": "Cr\xE9er",
42512
- "resourcePicker.createNew": "Cr\xE9er un nouveau\u2026",
42513
- "resourcePicker.failed": "Impossible de lire le compte. Veuillez r\xE9essayer.",
42514
- "resourcePicker.newName": "Nom",
42515
- "resourcePicker.option": "{name} \xB7 {detail}",
42516
42493
  "restoreAccount.back": "Votre compte est de retour",
42517
42494
  "restoreAccount.backBody": "Vos fichiers, biblioth\xE8ques, mod\xE8les et plugins sont l\xE0 o\xF9 vous les avez laiss\xE9s. Les \xE9quipes devront vous inviter \xE0 nouveau.",
42518
42495
  "restoreAccount.couldNotRestore": "Votre compte n\u2019a pas pu \xEAtre restaur\xE9. Veuillez r\xE9essayer.",
@@ -42721,11 +42698,7 @@ var require_fr = __commonJS({
42721
42698
  "showAdvanceControl.whenAnimationEnds": "Quand l\u2019animation se termine",
42722
42699
  "sidebar.overview": "Aper\xE7u",
42723
42700
  "sidebarResizer.dragToResizeDoubleClick": "Faites glisser pour redimensionner \xB7 double-cliquez pour r\xE9initialiser",
42724
- "siteDatabase.attach": "Connecter une base de donn\xE9es",
42725
- "siteDatabase.attaching": "Connexion en cours\u2026",
42726
- "siteDatabase.attachThis": "Connecter",
42727
42701
  "siteDatabase.close": "Fermer",
42728
- "siteDatabase.connectFirst": "Connectez d\u2019abord un compte Neon.",
42729
42702
  "siteDatabase.detach": "D\xE9connecter",
42730
42703
  "siteDatabase.failed": "Une erreur est survenue. Veuillez r\xE9essayer.",
42731
42704
  "siteDatabase.form": "Formulaire",
@@ -44711,19 +44684,14 @@ var require_de = __commonJS({
44711
44684
  "designPanel.visibilityFollowsAVariable": "Sichtbarkeit folgt einer Variable",
44712
44685
  "designPanel.webP": "WebP",
44713
44686
  "designPanel.wrap": "Umbruch",
44714
- "destinations.account": "{name} \xB7 {account}",
44715
- "destinations.accountLabel": "Konto",
44716
44687
  "destinations.add": "Ziel hinzuf\xFCgen",
44717
- "destinations.addThis": "Hinzuf\xFCgen",
44718
44688
  "destinations.building": "Wird erstellt",
44719
44689
  "destinations.cancel": "Abbrechen",
44720
44690
  "destinations.commit": "Version {n} \xB7 Commit {ref}",
44721
- "destinations.connectFirst": "Verbinde zuerst ein GitHub- oder Vercel-Konto.",
44722
44691
  "destinations.deployment": "Version {n} \xB7 Bereitstellung",
44723
44692
  "destinations.failed": "Etwas ist schiefgelaufen. Versuche es erneut.",
44724
44693
  "destinations.none": "Sende diese Website an ein Repository von dir auf GitHub oder stelle sie in einem deiner Projekte auf Vercel bereit.",
44725
44694
  "destinations.notSent": "Noch nichts gesendet",
44726
- "destinations.openIntegrations": "Integrationen\u2026",
44727
44695
  "destinations.place": "{name} \xB7 {target}",
44728
44696
  "destinations.publishFirst": "Zuerst ver\xF6ffentlichen",
44729
44697
  "destinations.remove": "Ziel entfernen",
@@ -46566,12 +46534,6 @@ var require_de = __commonJS({
46566
46534
  "resizeDialog.custom": "Benutzerdefiniert\u2026",
46567
46535
  "resizeDialog.magicResize": "Magische Gr\xF6\xDFen\xE4nderung",
46568
46536
  "resizeDialog.size": "Gr\xF6\xDFe",
46569
- "resourcePicker.choose": "Ausw\xE4hlen\u2026",
46570
- "resourcePicker.create": "Erstellen",
46571
- "resourcePicker.createNew": "Neu erstellen\u2026",
46572
- "resourcePicker.failed": "Konto konnte nicht gelesen werden. Versuche es erneut.",
46573
- "resourcePicker.newName": "Name",
46574
- "resourcePicker.option": "{name} \xB7 {detail}",
46575
46537
  "restoreAccount.back": "Dein Konto ist wiederhergestellt",
46576
46538
  "restoreAccount.backBody": "Deine Dateien, Bibliotheken, Vorlagen und Plugins sind wieder da, wo du sie verlassen hast. Teams m\xFCssen dich erneut einladen.",
46577
46539
  "restoreAccount.couldNotRestore": "Dein Konto konnte nicht wiederhergestellt werden. Versuche es erneut.",
@@ -46780,11 +46742,7 @@ var require_de = __commonJS({
46780
46742
  "showAdvanceControl.whenAnimationEnds": "Wenn Animation endet",
46781
46743
  "sidebar.overview": "\xDCbersicht",
46782
46744
  "sidebarResizer.dragToResizeDoubleClick": "Zum Anpassen ziehen \xB7 Doppelklick zum Zur\xFCcksetzen",
46783
- "siteDatabase.attach": "Datenbank anh\xE4ngen",
46784
- "siteDatabase.attaching": "Wird angeh\xE4ngt\u2026",
46785
- "siteDatabase.attachThis": "Anh\xE4ngen",
46786
46745
  "siteDatabase.close": "Schlie\xDFen",
46787
- "siteDatabase.connectFirst": "Verbinde zuerst ein Neon-Konto.",
46788
46746
  "siteDatabase.detach": "Trennen",
46789
46747
  "siteDatabase.failed": "Etwas ist schiefgelaufen. Versuche es erneut.",
46790
46748
  "siteDatabase.form": "Formular",
@@ -48770,19 +48728,14 @@ var require_it = __commonJS({
48770
48728
  "designPanel.visibilityFollowsAVariable": "La visibilit\xE0 segue una variabile",
48771
48729
  "designPanel.webP": "WebP",
48772
48730
  "designPanel.wrap": "A capo",
48773
- "destinations.account": "{name} \xB7 {account}",
48774
- "destinations.accountLabel": "Account",
48775
48731
  "destinations.add": "Aggiungi destinazione",
48776
- "destinations.addThis": "Aggiungi",
48777
48732
  "destinations.building": "In costruzione",
48778
48733
  "destinations.cancel": "Annulla",
48779
48734
  "destinations.commit": "Versione {n} \xB7 commit {ref}",
48780
- "destinations.connectFirst": "Connetti prima un account GitHub o Vercel.",
48781
48735
  "destinations.deployment": "Versione {n} \xB7 deployment",
48782
48736
  "destinations.failed": "Qualcosa \xE8 andato storto. Riprova.",
48783
48737
  "destinations.none": "Invia questo sito a un tuo repository su GitHub, o distribuiscilo a un tuo progetto su Vercel.",
48784
48738
  "destinations.notSent": "Niente ancora inviato",
48785
- "destinations.openIntegrations": "Integrazioni\u2026",
48786
48739
  "destinations.place": "{name} \xB7 {target}",
48787
48740
  "destinations.publishFirst": "Pubblica prima",
48788
48741
  "destinations.remove": "Rimuovi destinazione",
@@ -50625,12 +50578,6 @@ var require_it = __commonJS({
50625
50578
  "resizeDialog.custom": "Personalizzato\u2026",
50626
50579
  "resizeDialog.magicResize": "Ridimensionamento magico",
50627
50580
  "resizeDialog.size": "Dimensione",
50628
- "resourcePicker.choose": "Scegli\u2026",
50629
- "resourcePicker.create": "Crea",
50630
- "resourcePicker.createNew": "Crea nuovo\u2026",
50631
- "resourcePicker.failed": "Impossibile leggere l\u2019account. Riprova.",
50632
- "resourcePicker.newName": "Nome",
50633
- "resourcePicker.option": "{name} \xB7 {detail}",
50634
50581
  "restoreAccount.back": "Il tuo account \xE8 stato ripristinato",
50635
50582
  "restoreAccount.backBody": "I tuoi file, librerie, modelli e plugin sono dove li avevi lasciati. I team dovranno invitarti di nuovo.",
50636
50583
  "restoreAccount.couldNotRestore": "Impossibile ripristinare il tuo account. Riprova.",
@@ -50839,11 +50786,7 @@ var require_it = __commonJS({
50839
50786
  "showAdvanceControl.whenAnimationEnds": "Quando l\u2019animazione finisce",
50840
50787
  "sidebar.overview": "Panoramica",
50841
50788
  "sidebarResizer.dragToResizeDoubleClick": "Trascina per ridimensionare \xB7 doppio clic per reimpostare",
50842
- "siteDatabase.attach": "Collega un database",
50843
- "siteDatabase.attaching": "Collegamento in corso\u2026",
50844
- "siteDatabase.attachThis": "Collega",
50845
50789
  "siteDatabase.close": "Chiudi",
50846
- "siteDatabase.connectFirst": "Collega prima un account Neon.",
50847
50790
  "siteDatabase.detach": "Scollega",
50848
50791
  "siteDatabase.failed": "Qualcosa \xE8 andato storto. Riprova.",
50849
50792
  "siteDatabase.form": "Modulo",
@@ -52829,19 +52772,14 @@ var require_pt_BR = __commonJS({
52829
52772
  "designPanel.visibilityFollowsAVariable": "Visibilidade segue uma vari\xE1vel",
52830
52773
  "designPanel.webP": "WebP",
52831
52774
  "designPanel.wrap": "Quebrar linha",
52832
- "destinations.account": "{name} \xB7 {account}",
52833
- "destinations.accountLabel": "Conta",
52834
52775
  "destinations.add": "Adicionar destino",
52835
- "destinations.addThis": "Adicionar",
52836
52776
  "destinations.building": "Compilando",
52837
52777
  "destinations.cancel": "Cancelar",
52838
52778
  "destinations.commit": "Vers\xE3o {n} \xB7 commit {ref}",
52839
- "destinations.connectFirst": "Conecte uma conta GitHub ou Vercel primeiro.",
52840
52779
  "destinations.deployment": "Vers\xE3o {n} \xB7 implanta\xE7\xE3o",
52841
52780
  "destinations.failed": "Algo deu errado. Tente novamente.",
52842
52781
  "destinations.none": "Envie este site para um de seus reposit\xF3rios no GitHub, ou implante-o em um de seus projetos no Vercel.",
52843
52782
  "destinations.notSent": "Nada enviado ainda",
52844
- "destinations.openIntegrations": "Integra\xE7\xF5es\u2026",
52845
52783
  "destinations.place": "{name} \xB7 {target}",
52846
52784
  "destinations.publishFirst": "Publique primeiro",
52847
52785
  "destinations.remove": "Remover destino",
@@ -54684,12 +54622,6 @@ var require_pt_BR = __commonJS({
54684
54622
  "resizeDialog.custom": "Personalizado\u2026",
54685
54623
  "resizeDialog.magicResize": "Redimensionamento m\xE1gico",
54686
54624
  "resizeDialog.size": "Tamanho",
54687
- "resourcePicker.choose": "Escolher\u2026",
54688
- "resourcePicker.create": "Criar",
54689
- "resourcePicker.createNew": "Criar novo\u2026",
54690
- "resourcePicker.failed": "N\xE3o foi poss\xEDvel ler a conta. Tente novamente.",
54691
- "resourcePicker.newName": "Nome",
54692
- "resourcePicker.option": "{name} \xB7 {detail}",
54693
54625
  "restoreAccount.back": "Sua conta est\xE1 de volta",
54694
54626
  "restoreAccount.backBody": "Seus arquivos, bibliotecas, modelos e plugins est\xE3o onde voc\xEA os deixou. As equipes precisar\xE3o convid\xE1-lo novamente.",
54695
54627
  "restoreAccount.couldNotRestore": "N\xE3o foi poss\xEDvel restaurar sua conta. Tente novamente.",
@@ -54898,11 +54830,7 @@ var require_pt_BR = __commonJS({
54898
54830
  "showAdvanceControl.whenAnimationEnds": "Quando a anima\xE7\xE3o terminar",
54899
54831
  "sidebar.overview": "Vis\xE3o geral",
54900
54832
  "sidebarResizer.dragToResizeDoubleClick": "Arraste para redimensionar \xB7 clique duas vezes para redefinir",
54901
- "siteDatabase.attach": "Anexar um banco de dados",
54902
- "siteDatabase.attaching": "Anexando\u2026",
54903
- "siteDatabase.attachThis": "Anexar",
54904
54833
  "siteDatabase.close": "Fechar",
54905
- "siteDatabase.connectFirst": "Conecte uma conta Neon primeiro.",
54906
54834
  "siteDatabase.detach": "Desanexar",
54907
54835
  "siteDatabase.failed": "Algo deu errado. Tente novamente.",
54908
54836
  "siteDatabase.form": "Formul\xE1rio",
@@ -56888,19 +56816,14 @@ var require_ja = __commonJS({
56888
56816
  "designPanel.visibilityFollowsAVariable": "\u53EF\u8996\u6027\u306F\u5909\u6570\u306B\u5F93\u3046",
56889
56817
  "designPanel.webP": "WebP",
56890
56818
  "designPanel.wrap": "\u6298\u308A\u8FD4\u3057",
56891
- "destinations.account": "{name} \xB7 {account}",
56892
- "destinations.accountLabel": "\u30A2\u30AB\u30A6\u30F3\u30C8",
56893
56819
  "destinations.add": "\u9001\u4FE1\u5148\u3092\u8FFD\u52A0",
56894
- "destinations.addThis": "\u8FFD\u52A0",
56895
56820
  "destinations.building": "\u69CB\u7BC9\u4E2D",
56896
56821
  "destinations.cancel": "\u30AD\u30E3\u30F3\u30BB\u30EB",
56897
56822
  "destinations.commit": "\u30D0\u30FC\u30B8\u30E7\u30F3 {n} \xB7 \u30B3\u30DF\u30C3\u30C8 {ref}",
56898
- "destinations.connectFirst": "\u307E\u305AGitHub\u307E\u305F\u306FVercel\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u63A5\u7D9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
56899
56823
  "destinations.deployment": "\u30D0\u30FC\u30B8\u30E7\u30F3 {n} \xB7 \u30C7\u30D7\u30ED\u30A4",
56900
56824
  "destinations.failed": "\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
56901
56825
  "destinations.none": "\u3053\u306E\u30B5\u30A4\u30C8\u3092GitHub\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306B\u9001\u4FE1\u3059\u308B\u304B\u3001Vercel\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u30C7\u30D7\u30ED\u30A4\u3057\u307E\u3059\u3002",
56902
56826
  "destinations.notSent": "\u307E\u3060\u9001\u4FE1\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
56903
- "destinations.openIntegrations": "\u9023\u643A\u2026",
56904
56827
  "destinations.place": "{name} \xB7 {target}",
56905
56828
  "destinations.publishFirst": "\u307E\u305A\u516C\u958B\u3057\u3066\u304F\u3060\u3055\u3044",
56906
56829
  "destinations.remove": "\u9001\u4FE1\u5148\u3092\u524A\u9664",
@@ -58743,12 +58666,6 @@ var require_ja = __commonJS({
58743
58666
  "resizeDialog.custom": "\u30AB\u30B9\u30BF\u30E0\u2026",
58744
58667
  "resizeDialog.magicResize": "\u30DE\u30B8\u30C3\u30AF\u30EA\u30B5\u30A4\u30BA",
58745
58668
  "resizeDialog.size": "\u30B5\u30A4\u30BA",
58746
- "resourcePicker.choose": "\u9078\u629E\u2026",
58747
- "resourcePicker.create": "\u4F5C\u6210",
58748
- "resourcePicker.createNew": "\u65B0\u898F\u4F5C\u6210\u2026",
58749
- "resourcePicker.failed": "\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
58750
- "resourcePicker.newName": "\u540D\u524D",
58751
- "resourcePicker.option": "{name} \xB7 {detail}",
58752
58669
  "restoreAccount.back": "\u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u5FA9\u5143\u3055\u308C\u307E\u3057\u305F",
58753
58670
  "restoreAccount.backBody": "\u30D5\u30A1\u30A4\u30EB\u3001\u30E9\u30A4\u30D6\u30E9\u30EA\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3001\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u4EE5\u524D\u306E\u5834\u6240\u306B\u3042\u308A\u307E\u3059\u3002\u30C1\u30FC\u30E0\u306B\u306F\u518D\u5EA6\u62DB\u5F85\u3057\u3066\u3082\u3089\u3046\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002",
58754
58671
  "restoreAccount.couldNotRestore": "\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
@@ -58957,11 +58874,7 @@ var require_ja = __commonJS({
58957
58874
  "showAdvanceControl.whenAnimationEnds": "\u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3\u7D42\u4E86\u6642",
58958
58875
  "sidebar.overview": "\u6982\u8981",
58959
58876
  "sidebarResizer.dragToResizeDoubleClick": "\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u30B5\u30A4\u30BA\u5909\u66F4 \xB7 \u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3067\u30EA\u30BB\u30C3\u30C8",
58960
- "siteDatabase.attach": "\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u63A5\u7D9A",
58961
- "siteDatabase.attaching": "\u63A5\u7D9A\u4E2D\u2026",
58962
- "siteDatabase.attachThis": "\u63A5\u7D9A",
58963
58877
  "siteDatabase.close": "\u9589\u3058\u308B",
58964
- "siteDatabase.connectFirst": "\u307E\u305ANeon\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u63A5\u7D9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
58965
58878
  "siteDatabase.detach": "\u5207\u65AD",
58966
58879
  "siteDatabase.failed": "\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
58967
58880
  "siteDatabase.form": "\u30D5\u30A9\u30FC\u30E0",
@@ -60947,19 +60860,14 @@ var require_ko = __commonJS({
60947
60860
  "designPanel.visibilityFollowsAVariable": "\uAC00\uC2DC\uC131: \uBCC0\uC218 \uB530\uB984",
60948
60861
  "designPanel.webP": "WebP",
60949
60862
  "designPanel.wrap": "\uC904 \uBC14\uAFC8",
60950
- "destinations.account": "{name} \xB7 {account}",
60951
- "destinations.accountLabel": "\uACC4\uC815",
60952
60863
  "destinations.add": "\uB300\uC0C1 \uCD94\uAC00",
60953
- "destinations.addThis": "\uCD94\uAC00",
60954
60864
  "destinations.building": "\uBE4C\uB4DC \uC911",
60955
60865
  "destinations.cancel": "\uCDE8\uC18C",
60956
60866
  "destinations.commit": "\uBC84\uC804 {n} \xB7 \uCEE4\uBC0B {ref}",
60957
- "destinations.connectFirst": "\uBA3C\uC800 GitHub \uB610\uB294 Vercel \uACC4\uC815\uC744 \uC5F0\uACB0\uD558\uC138\uC694.",
60958
60867
  "destinations.deployment": "\uBC84\uC804 {n} \xB7 \uBC30\uD3EC",
60959
60868
  "destinations.failed": "\uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.",
60960
60869
  "destinations.none": "\uC774 \uC0AC\uC774\uD2B8\uB97C GitHub \uB9AC\uD3EC\uC9C0\uD1A0\uB9AC\uB85C \uBCF4\uB0B4\uAC70\uB098 Vercel \uD504\uB85C\uC81D\uD2B8\uC5D0 \uBC30\uD3EC\uD558\uC138\uC694.",
60961
60870
  "destinations.notSent": "\uC544\uC9C1 \uC804\uC1A1\uB41C \uD56D\uBAA9 \uC5C6\uC74C",
60962
- "destinations.openIntegrations": "\uD1B5\uD569\u2026",
60963
60871
  "destinations.place": "{name} \xB7 {target}",
60964
60872
  "destinations.publishFirst": "\uBA3C\uC800 \uAC8C\uC2DC\uD558\uC138\uC694.",
60965
60873
  "destinations.remove": "\uB300\uC0C1 \uC81C\uAC70",
@@ -62802,12 +62710,6 @@ var require_ko = __commonJS({
62802
62710
  "resizeDialog.custom": "\uC0AC\uC6A9\uC790 \uC9C0\uC815\u2026",
62803
62711
  "resizeDialog.magicResize": "\uB9E4\uC9C1 \uD06C\uAE30 \uC870\uC815",
62804
62712
  "resizeDialog.size": "\uD06C\uAE30",
62805
- "resourcePicker.choose": "\uC120\uD0DD\u2026",
62806
- "resourcePicker.create": "\uC0DD\uC131",
62807
- "resourcePicker.createNew": "\uC0C8\uB85C \uC0DD\uC131\u2026",
62808
- "resourcePicker.failed": "\uACC4\uC815\uC744 \uC77D\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.",
62809
- "resourcePicker.newName": "\uC774\uB984",
62810
- "resourcePicker.option": "{name} \xB7 {detail}",
62811
62713
  "restoreAccount.back": "\uACC4\uC815\uC774 \uBCF5\uAD6C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",
62812
62714
  "restoreAccount.backBody": "\uD30C\uC77C, \uB77C\uC774\uBE0C\uB7EC\uB9AC, \uD15C\uD50C\uB9BF \uBC0F \uD50C\uB7EC\uADF8\uC778\uC774 \uC6D0\uB798 \uC788\uB358 \uACF3\uC5D0 \uC788\uC2B5\uB2C8\uB2E4. \uD300\uC740 \uB2E4\uC2DC \uCD08\uB300\uD574\uC57C \uD569\uB2C8\uB2E4.",
62813
62715
  "restoreAccount.couldNotRestore": "\uACC4\uC815\uC744 \uBCF5\uAD6C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.",
@@ -63016,11 +62918,7 @@ var require_ko = __commonJS({
63016
62918
  "showAdvanceControl.whenAnimationEnds": "\uC560\uB2C8\uBA54\uC774\uC158 \uC885\uB8CC \uC2DC",
63017
62919
  "sidebar.overview": "\uAC1C\uC694",
63018
62920
  "sidebarResizer.dragToResizeDoubleClick": "\uB4DC\uB798\uADF8\uD558\uC5EC \uD06C\uAE30 \uC870\uC808 \xB7 \uB450 \uBC88 \uD074\uB9AD\uD558\uC5EC \uC7AC\uC124\uC815",
63019
- "siteDatabase.attach": "\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0",
63020
- "siteDatabase.attaching": "\uC5F0\uACB0 \uC911\u2026",
63021
- "siteDatabase.attachThis": "\uC5F0\uACB0",
63022
62921
  "siteDatabase.close": "\uB2EB\uAE30",
63023
- "siteDatabase.connectFirst": "\uBA3C\uC800 Neon \uACC4\uC815\uC744 \uC5F0\uACB0\uD558\uC138\uC694.",
63024
62922
  "siteDatabase.detach": "\uC5F0\uACB0 \uD574\uC81C",
63025
62923
  "siteDatabase.failed": "\uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.",
63026
62924
  "siteDatabase.form": "\uD3FC",
@@ -65006,19 +64904,14 @@ var require_zh_CN = __commonJS({
65006
64904
  "designPanel.visibilityFollowsAVariable": "\u53EF\u89C1\u6027\u8DDF\u968F\u53D8\u91CF",
65007
64905
  "designPanel.webP": "WebP",
65008
64906
  "designPanel.wrap": "\u5305\u88F9",
65009
- "destinations.account": "{name} \xB7 {account}",
65010
- "destinations.accountLabel": "\u8D26\u6237",
65011
64907
  "destinations.add": "\u6DFB\u52A0\u76EE\u6807",
65012
- "destinations.addThis": "\u6DFB\u52A0",
65013
64908
  "destinations.building": "\u6784\u5EFA\u4E2D",
65014
64909
  "destinations.cancel": "\u53D6\u6D88",
65015
64910
  "destinations.commit": "\u7248\u672C {n} \xB7 \u63D0\u4EA4 {ref}",
65016
- "destinations.connectFirst": "\u8BF7\u5148\u8FDE\u63A5 GitHub \u6216 Vercel \u8D26\u6237\u3002",
65017
64911
  "destinations.deployment": "\u7248\u672C {n} \xB7 \u90E8\u7F72",
65018
64912
  "destinations.failed": "\u51FA\u9519\u4E86\u3002\u8BF7\u91CD\u8BD5\u3002",
65019
64913
  "destinations.none": "\u5C06\u6B64\u7AD9\u70B9\u53D1\u9001\u5230\u60A8\u7684 GitHub \u4ED3\u5E93\uFF0C\u6216\u90E8\u7F72\u5230\u60A8\u7684 Vercel \u9879\u76EE\u3002",
65020
64914
  "destinations.notSent": "\u5C1A\u672A\u53D1\u9001\u4EFB\u4F55\u5185\u5BB9",
65021
- "destinations.openIntegrations": "\u96C6\u6210\u2026",
65022
64915
  "destinations.place": "{name} \xB7 {target}",
65023
64916
  "destinations.publishFirst": "\u8BF7\u5148\u53D1\u5E03",
65024
64917
  "destinations.remove": "\u79FB\u9664\u76EE\u6807",
@@ -66861,12 +66754,6 @@ var require_zh_CN = __commonJS({
66861
66754
  "resizeDialog.custom": "\u81EA\u5B9A\u4E49\u2026",
66862
66755
  "resizeDialog.magicResize": "\u667A\u80FD\u8C03\u6574\u5927\u5C0F",
66863
66756
  "resizeDialog.size": "\u5C3A\u5BF8",
66864
- "resourcePicker.choose": "\u9009\u62E9\u2026",
66865
- "resourcePicker.create": "\u521B\u5EFA",
66866
- "resourcePicker.createNew": "\u65B0\u5EFA\u2026",
66867
- "resourcePicker.failed": "\u65E0\u6CD5\u8BFB\u53D6\u8D26\u6237\u3002\u8BF7\u91CD\u8BD5\u3002",
66868
- "resourcePicker.newName": "\u540D\u79F0",
66869
- "resourcePicker.option": "{name} \xB7 {detail}",
66870
66757
  "restoreAccount.back": "\u60A8\u7684\u8D26\u6237\u5DF2\u6062\u590D",
66871
66758
  "restoreAccount.backBody": "\u60A8\u7684\u6587\u4EF6\u3001\u5E93\u3001\u6A21\u677F\u548C\u63D2\u4EF6\u90FD\u5728\u539F\u5904\u3002\u56E2\u961F\u9700\u8981\u518D\u6B21\u9080\u8BF7\u60A8\u3002",
66872
66759
  "restoreAccount.couldNotRestore": "\u60A8\u7684\u8D26\u6237\u65E0\u6CD5\u6062\u590D\u3002\u8BF7\u91CD\u8BD5\u3002",
@@ -67075,11 +66962,7 @@ var require_zh_CN = __commonJS({
67075
66962
  "showAdvanceControl.whenAnimationEnds": "\u52A8\u753B\u7ED3\u675F\u65F6",
67076
66963
  "sidebar.overview": "\u6982\u89C8",
67077
66964
  "sidebarResizer.dragToResizeDoubleClick": "\u62D6\u52A8\u4EE5\u8C03\u6574\u5927\u5C0F \xB7 \u53CC\u51FB\u4EE5\u91CD\u7F6E",
67078
- "siteDatabase.attach": "\u8FDE\u63A5\u6570\u636E\u5E93",
67079
- "siteDatabase.attaching": "\u6B63\u5728\u8FDE\u63A5\u2026",
67080
- "siteDatabase.attachThis": "\u8FDE\u63A5",
67081
66965
  "siteDatabase.close": "\u5173\u95ED",
67082
- "siteDatabase.connectFirst": "\u8BF7\u5148\u8FDE\u63A5 Neon \u8D26\u6237\u3002",
67083
66966
  "siteDatabase.detach": "\u65AD\u5F00\u8FDE\u63A5",
67084
66967
  "siteDatabase.failed": "\u51FA\u9519\u4E86\u3002\u8BF7\u91CD\u8BD5\u3002",
67085
66968
  "siteDatabase.form": "\u8868\u5355",
@@ -69065,19 +68948,14 @@ var require_zh_TW = __commonJS({
69065
68948
  "designPanel.visibilityFollowsAVariable": "\u53EF\u898B\u6027\u9075\u5FAA\u8B8A\u6578",
69066
68949
  "designPanel.webP": "WebP",
69067
68950
  "designPanel.wrap": "\u63DB\u884C",
69068
- "destinations.account": "{name} \xB7 {account}",
69069
- "destinations.accountLabel": "\u5E33\u6236",
69070
68951
  "destinations.add": "\u65B0\u589E\u76EE\u7684\u5730",
69071
- "destinations.addThis": "\u65B0\u589E",
69072
68952
  "destinations.building": "\u6B63\u5728\u5EFA\u7F6E",
69073
68953
  "destinations.cancel": "\u53D6\u6D88",
69074
68954
  "destinations.commit": "\u7248\u672C {n} \xB7 \u63D0\u4EA4 {ref}",
69075
- "destinations.connectFirst": "\u8ACB\u5148\u9023\u7D50 GitHub \u6216 Vercel \u5E33\u6236\u3002",
69076
68955
  "destinations.deployment": "\u7248\u672C {n} \xB7 \u90E8\u7F72",
69077
68956
  "destinations.failed": "\u767C\u751F\u932F\u8AA4\u3002\u8ACB\u518D\u8A66\u4E00\u6B21\u3002",
69078
68957
  "destinations.none": "\u5C07\u6B64\u7DB2\u7AD9\u50B3\u9001\u5230\u60A8\u5728 GitHub \u4E0A\u7684\u5132\u5B58\u5EAB\uFF0C\u6216\u90E8\u7F72\u5230\u60A8\u5728 Vercel \u4E0A\u7684\u5C08\u6848\u3002",
69079
68958
  "destinations.notSent": "\u5C1A\u672A\u50B3\u9001\u4EFB\u4F55\u5167\u5BB9",
69080
- "destinations.openIntegrations": "\u6574\u5408\u2026",
69081
68959
  "destinations.place": "{name} \xB7 {target}",
69082
68960
  "destinations.publishFirst": "\u8ACB\u5148\u767C\u4F48",
69083
68961
  "destinations.remove": "\u79FB\u9664\u76EE\u7684\u5730",
@@ -70920,12 +70798,6 @@ var require_zh_TW = __commonJS({
70920
70798
  "resizeDialog.custom": "\u81EA\u8A02\u2026",
70921
70799
  "resizeDialog.magicResize": "\u667A\u6167\u8ABF\u6574\u5927\u5C0F",
70922
70800
  "resizeDialog.size": "\u5927\u5C0F",
70923
- "resourcePicker.choose": "\u9078\u64C7\u2026",
70924
- "resourcePicker.create": "\u5EFA\u7ACB",
70925
- "resourcePicker.createNew": "\u5EFA\u7ACB\u65B0\u7684\u2026",
70926
- "resourcePicker.failed": "\u7121\u6CD5\u8B80\u53D6\u5E33\u6236\u3002\u8ACB\u518D\u8A66\u4E00\u6B21\u3002",
70927
- "resourcePicker.newName": "\u540D\u7A31",
70928
- "resourcePicker.option": "{name} \xB7 {detail}",
70929
70801
  "restoreAccount.back": "\u60A8\u7684\u5E33\u6236\u5DF2\u6062\u5FA9",
70930
70802
  "restoreAccount.backBody": "\u60A8\u7684\u6A94\u6848\u3001\u8CC7\u6599\u5EAB\u3001\u7BC4\u672C\u548C\u5916\u639B\u7A0B\u5F0F\u90FD\u5728\u60A8\u96E2\u958B\u6642\u7684\u4F4D\u7F6E\u3002\u5718\u968A\u9700\u8981\u518D\u6B21\u9080\u8ACB\u60A8\u3002",
70931
70803
  "restoreAccount.couldNotRestore": "\u60A8\u7684\u5E33\u6236\u7121\u6CD5\u6062\u5FA9\u3002\u8ACB\u518D\u8A66\u4E00\u6B21\u3002",
@@ -71134,11 +71006,7 @@ var require_zh_TW = __commonJS({
71134
71006
  "showAdvanceControl.whenAnimationEnds": "\u52D5\u756B\u7D50\u675F\u6642",
71135
71007
  "sidebar.overview": "\u6982\u89BD",
71136
71008
  "sidebarResizer.dragToResizeDoubleClick": "\u62D6\u66F3\u4EE5\u8ABF\u6574\u5927\u5C0F \xB7 \u96D9\u64CA\u4EE5\u91CD\u8A2D",
71137
- "siteDatabase.attach": "\u9023\u63A5\u8CC7\u6599\u5EAB",
71138
- "siteDatabase.attaching": "\u6B63\u5728\u9023\u63A5\u2026",
71139
- "siteDatabase.attachThis": "\u9023\u63A5",
71140
71009
  "siteDatabase.close": "\u95DC\u9589",
71141
- "siteDatabase.connectFirst": "\u8ACB\u5148\u9023\u63A5 Neon \u5E33\u6236\u3002",
71142
71010
  "siteDatabase.detach": "\u4E2D\u65B7\u9023\u63A5",
71143
71011
  "siteDatabase.failed": "\u767C\u751F\u932F\u8AA4\u3002\u8ACB\u518D\u8A66\u4E00\u6B21\u3002",
71144
71012
  "siteDatabase.form": "\u8868\u55AE",
@@ -73124,19 +72992,14 @@ var require_ru = __commonJS({
73124
72992
  "designPanel.visibilityFollowsAVariable": "\u0412\u0438\u0434\u0438\u043C\u043E\u0441\u0442\u044C \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439",
73125
72993
  "designPanel.webP": "WebP",
73126
72994
  "designPanel.wrap": "\u041E\u0431\u0442\u0435\u043A\u0430\u043D\u0438\u0435",
73127
- "destinations.account": "{name} \xB7 {account}",
73128
- "destinations.accountLabel": "\u0410\u043A\u043A\u0430\u0443\u043D\u0442",
73129
72995
  "destinations.add": "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",
73130
- "destinations.addThis": "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C",
73131
72996
  "destinations.building": "\u0421\u0431\u043E\u0440\u043A\u0430",
73132
72997
  "destinations.cancel": "\u041E\u0442\u043C\u0435\u043D\u0430",
73133
72998
  "destinations.commit": "\u0412\u0435\u0440\u0441\u0438\u044F {n} \xB7 \u043A\u043E\u043C\u043C\u0438\u0442 {ref}",
73134
- "destinations.connectFirst": "\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0430\u043A\u043A\u0430\u0443\u043D\u0442 GitHub \u0438\u043B\u0438 Vercel.",
73135
72999
  "destinations.deployment": "\u0412\u0435\u0440\u0441\u0438\u044F {n} \xB7 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0435",
73136
73000
  "destinations.failed": "\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430.",
73137
73001
  "destinations.none": "\u041E\u0442\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u044D\u0442\u043E\u0442 \u0441\u0430\u0439\u0442 \u0432 \u0441\u0432\u043E\u0439 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439 \u043D\u0430 GitHub \u0438\u043B\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0438\u0442\u0435 \u0435\u0433\u043E \u0432 \u0441\u0432\u043E\u0435\u043C \u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u043D\u0430 Vercel.",
73138
73002
  "destinations.notSent": "\u041F\u043E\u043A\u0430 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",
73139
- "destinations.openIntegrations": "\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438\u2026",
73140
73003
  "destinations.place": "{name} \xB7 {target}",
73141
73004
  "destinations.publishFirst": "\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u0443\u0439\u0442\u0435",
73142
73005
  "destinations.remove": "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",
@@ -74979,12 +74842,6 @@ var require_ru = __commonJS({
74979
74842
  "resizeDialog.custom": "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439\u2026",
74980
74843
  "resizeDialog.magicResize": "\u041C\u0430\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043C\u0435\u0440\u0430",
74981
74844
  "resizeDialog.size": "\u0420\u0430\u0437\u043C\u0435\u0440",
74982
- "resourcePicker.choose": "\u0412\u044B\u0431\u0440\u0430\u0442\u044C\u2026",
74983
- "resourcePicker.create": "\u0421\u043E\u0437\u0434\u0430\u0442\u044C",
74984
- "resourcePicker.createNew": "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439\u2026",
74985
- "resourcePicker.failed": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u0430\u043A\u043A\u0430\u0443\u043D\u0442. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430.",
74986
- "resourcePicker.newName": "\u0418\u043C\u044F",
74987
- "resourcePicker.option": "{name} \xB7 {detail}",
74988
74845
  "restoreAccount.back": "\u0412\u0430\u0448\u0430 \u0443\u0447\u0435\u0442\u043D\u0430\u044F \u0437\u0430\u043F\u0438\u0441\u044C \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430",
74989
74846
  "restoreAccount.backBody": "\u0412\u0430\u0448\u0438 \u0444\u0430\u0439\u043B\u044B, \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438, \u0448\u0430\u0431\u043B\u043E\u043D\u044B \u0438 \u043F\u043B\u0430\u0433\u0438\u043D\u044B \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0442\u0430\u043C, \u0433\u0434\u0435 \u0432\u044B \u0438\u0445 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438. \u041A\u043E\u043C\u0430\u043D\u0434\u0430\u043C \u043F\u043E\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043F\u0440\u0438\u0433\u043B\u0430\u0441\u0438\u0442\u044C \u0432\u0430\u0441 \u0441\u043D\u043E\u0432\u0430.",
74990
74847
  "restoreAccount.couldNotRestore": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0430\u0448\u0443 \u0443\u0447\u0435\u0442\u043D\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437.",
@@ -75193,11 +75050,7 @@ var require_ru = __commonJS({
75193
75050
  "showAdvanceControl.whenAnimationEnds": "\u041F\u043E \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0438 \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u0438",
75194
75051
  "sidebar.overview": "\u041E\u0431\u0437\u043E\u0440",
75195
75052
  "sidebarResizer.dragToResizeDoubleClick": "\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0434\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \xB7 \u0434\u0432\u0430\u0436\u0434\u044B \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0441\u0431\u0440\u043E\u0441\u0430",
75196
- "siteDatabase.attach": "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0431\u0430\u0437\u0443 \u0434\u0430\u043D\u043D\u044B\u0445",
75197
- "siteDatabase.attaching": "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u2026",
75198
- "siteDatabase.attachThis": "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C",
75199
75053
  "siteDatabase.close": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
75200
- "siteDatabase.connectFirst": "\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0430\u043A\u043A\u0430\u0443\u043D\u0442 Neon.",
75201
75054
  "siteDatabase.detach": "\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C",
75202
75055
  "siteDatabase.failed": "\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430.",
75203
75056
  "siteDatabase.form": "\u0424\u043E\u0440\u043C\u0430",
@@ -77183,19 +77036,14 @@ var require_ar = __commonJS({
77183
77036
  "designPanel.visibilityFollowsAVariable": "\u0627\u0644\u0631\u0624\u064A\u0629 \u062A\u062A\u0628\u0639 \u0645\u062A\u063A\u064A\u0631\u064B\u0627",
77184
77037
  "designPanel.webP": "WebP",
77185
77038
  "designPanel.wrap": "\u0627\u0644\u062A\u0641\u0627\u0641",
77186
- "destinations.account": "{name} \xB7 {account}",
77187
- "destinations.accountLabel": "\u0627\u0644\u062D\u0633\u0627\u0628",
77188
77039
  "destinations.add": "\u0625\u0636\u0627\u0641\u0629 \u0648\u062C\u0647\u0629",
77189
- "destinations.addThis": "\u0625\u0636\u0627\u0641\u0629",
77190
77040
  "destinations.building": "\u062C\u0627\u0631\u064A \u0627\u0644\u0625\u0646\u0634\u0627\u0621",
77191
77041
  "destinations.cancel": "\u0625\u0644\u063A\u0627\u0621",
77192
77042
  "destinations.commit": "\u0627\u0644\u0625\u0635\u062F\u0627\u0631 {n} \xB7 \u0627\u0644\u062A\u0632\u0627\u0645 {ref}",
77193
- "destinations.connectFirst": "\u064A\u0631\u062C\u0649 \u0631\u0628\u0637 \u062D\u0633\u0627\u0628 GitHub \u0623\u0648 Vercel \u0623\u0648\u0644\u0627\u064B.",
77194
77043
  "destinations.deployment": "\u0627\u0644\u0625\u0635\u062F\u0627\u0631 {n} \xB7 \u0646\u0634\u0631",
77195
77044
  "destinations.failed": "\u062D\u062F\u062B \u062E\u0637\u0623 \u0645\u0627. \u062D\u0627\u0648\u0644 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
77196
77045
  "destinations.none": "\u0623\u0631\u0633\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0642\u0639 \u0625\u0644\u0649 \u0645\u0633\u062A\u0648\u062F\u0639 \u062E\u0627\u0635 \u0628\u0643 \u0639\u0644\u0649 GitHub\u060C \u0623\u0648 \u0627\u0646\u0634\u0631\u0647 \u0641\u064A \u0645\u0634\u0631\u0648\u0639 \u062E\u0627\u0635 \u0628\u0643 \u0639\u0644\u0649 Vercel.",
77197
77046
  "destinations.notSent": "\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0625\u0631\u0633\u0627\u0644 \u0628\u0639\u062F",
77198
- "destinations.openIntegrations": "\u0627\u0644\u062A\u0643\u0627\u0645\u0644\u0627\u062A\u2026",
77199
77047
  "destinations.place": "{name} \xB7 {target}",
77200
77048
  "destinations.publishFirst": "\u0627\u0646\u0634\u0631 \u0623\u0648\u0644\u0627\u064B",
77201
77049
  "destinations.remove": "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0648\u062C\u0647\u0629",
@@ -79038,12 +78886,6 @@ var require_ar = __commonJS({
79038
78886
  "resizeDialog.custom": "\u0645\u062E\u0635\u0635\u2026",
79039
78887
  "resizeDialog.magicResize": "\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u062D\u062C\u0645 \u0627\u0644\u0633\u062D\u0631\u064A",
79040
78888
  "resizeDialog.size": "\u0627\u0644\u062D\u062C\u0645",
79041
- "resourcePicker.choose": "\u0627\u062E\u062A\u0631\u2026",
79042
- "resourcePicker.create": "\u0625\u0646\u0634\u0627\u0621",
79043
- "resourcePicker.createNew": "\u0625\u0646\u0634\u0627\u0621 \u062C\u062F\u064A\u062F\u2026",
79044
- "resourcePicker.failed": "\u062A\u0639\u0630\u0631 \u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u062D\u0633\u0627\u0628. \u062D\u0627\u0648\u0644 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
79045
- "resourcePicker.newName": "\u0627\u0644\u0627\u0633\u0645",
79046
- "resourcePicker.option": "{name} \xB7 {detail}",
79047
78889
  "restoreAccount.back": "\u062A\u0645\u062A \u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u062D\u0633\u0627\u0628\u0643",
79048
78890
  "restoreAccount.backBody": "\u0645\u0644\u0641\u0627\u062A\u0643 \u0648\u0645\u0643\u062A\u0628\u0627\u062A\u0643 \u0648\u0642\u0648\u0627\u0644\u0628\u0643 \u0648\u0645\u0643\u0648\u0646\u0627\u062A\u0643 \u0627\u0644\u0625\u0636\u0627\u0641\u064A\u0629 \u0645\u0648\u062C\u0648\u062F\u0629 \u062D\u064A\u062B \u062A\u0631\u0643\u062A\u0647\u0627. \u062A\u062D\u062A\u0627\u062C \u0627\u0644\u0641\u0631\u0642 \u0625\u0644\u0649 \u062F\u0639\u0648\u062A\u0643 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
79049
78891
  "restoreAccount.couldNotRestore": "\u062A\u0639\u0630\u0631 \u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u062D\u0633\u0627\u0628\u0643. \u064A\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
@@ -79252,11 +79094,7 @@ var require_ar = __commonJS({
79252
79094
  "showAdvanceControl.whenAnimationEnds": "\u0639\u0646\u062F \u0627\u0646\u062A\u0647\u0627\u0621 \u0627\u0644\u062D\u0631\u0643\u0629",
79253
79095
  "sidebar.overview": "\u0646\u0638\u0631\u0629 \u0639\u0627\u0645\u0629",
79254
79096
  "sidebarResizer.dragToResizeDoubleClick": "\u0627\u0633\u062D\u0628 \u0644\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u062D\u062C\u0645 \xB7 \u0627\u0646\u0642\u0631 \u0646\u0642\u0631\u064B\u0627 \u0645\u0632\u062F\u0648\u062C\u064B\u0627 \u0644\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0636\u0628\u0637",
79255
- "siteDatabase.attach": "\u0625\u0631\u0641\u0627\u0642 \u0642\u0627\u0639\u062F\u0629 \u0628\u064A\u0627\u0646\u0627\u062A",
79256
- "siteDatabase.attaching": "\u062C\u0627\u0631\u064D \u0627\u0644\u0625\u0631\u0641\u0627\u0642\u2026",
79257
- "siteDatabase.attachThis": "\u0625\u0631\u0641\u0627\u0642",
79258
79097
  "siteDatabase.close": "\u0625\u063A\u0644\u0627\u0642",
79259
- "siteDatabase.connectFirst": "\u0627\u0644\u0631\u062C\u0627\u0621 \u0631\u0628\u0637 \u062D\u0633\u0627\u0628 Neon \u0623\u0648\u0644\u0627\u064B.",
79260
79098
  "siteDatabase.detach": "\u0641\u0635\u0644",
79261
79099
  "siteDatabase.failed": "\u062D\u062F\u062B \u062E\u0637\u0623 \u0645\u0627. \u0627\u0644\u0631\u062C\u0627\u0621 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
79262
79100
  "siteDatabase.form": "\u0646\u0645\u0648\u0630\u062C",
@@ -81242,19 +81080,14 @@ var require_hi = __commonJS({
81242
81080
  "designPanel.visibilityFollowsAVariable": "\u0926\u0943\u0936\u094D\u092F\u0924\u093E \u090F\u0915 \u0935\u0947\u0930\u093F\u090F\u092C\u0932 \u0915\u093E \u0905\u0928\u0941\u0938\u0930\u0923 \u0915\u0930\u0924\u0940 \u0939\u0948",
81243
81081
  "designPanel.webP": "WebP",
81244
81082
  "designPanel.wrap": "\u0930\u0948\u092A \u0915\u0930\u0947\u0902",
81245
- "destinations.account": "{name} \xB7 {account}",
81246
- "destinations.accountLabel": "\u0916\u093E\u0924\u093E",
81247
81083
  "destinations.add": "\u0917\u0902\u0924\u0935\u094D\u092F \u091C\u094B\u0921\u093C\u0947\u0902",
81248
- "destinations.addThis": "\u091C\u094B\u0921\u093C\u0947\u0902",
81249
81084
  "destinations.building": "\u0928\u093F\u0930\u094D\u092E\u093E\u0923 \u0939\u094B \u0930\u0939\u093E \u0939\u0948",
81250
81085
  "destinations.cancel": "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
81251
81086
  "destinations.commit": "\u0938\u0902\u0938\u094D\u0915\u0930\u0923 {n} \xB7 \u0915\u092E\u093F\u091F {ref}",
81252
- "destinations.connectFirst": "\u092A\u0939\u0932\u0947 \u090F\u0915 GitHub \u092F\u093E Vercel \u0916\u093E\u0924\u093E \u0915\u0928\u0947\u0915\u094D\u091F \u0915\u0930\u0947\u0902\u0964",
81253
81087
  "destinations.deployment": "\u0938\u0902\u0938\u094D\u0915\u0930\u0923 {n} \xB7 \u0921\u093F\u092A\u094D\u0932\u0949\u092F\u092E\u0947\u0902\u091F",
81254
81088
  "destinations.failed": "\u0915\u0941\u091B \u0917\u0932\u0924 \u0939\u094B \u0917\u092F\u093E\u0964 \u092A\u0941\u0928\u0903 \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902\u0964",
81255
81089
  "destinations.none": "\u0907\u0938 \u0938\u093E\u0907\u091F \u0915\u094B GitHub \u092A\u0930 \u0905\u092A\u0928\u0947 \u0930\u093F\u092A\u0949\u091C\u093F\u091F\u0930\u0940 \u092E\u0947\u0902 \u092D\u0947\u091C\u0947\u0902, \u092F\u093E Vercel \u092A\u0930 \u0905\u092A\u0928\u0947 \u092A\u094D\u0930\u094B\u091C\u0947\u0915\u094D\u091F \u092E\u0947\u0902 \u0921\u093F\u092A\u094D\u0932\u0949\u092F \u0915\u0930\u0947\u0902\u0964",
81256
81090
  "destinations.notSent": "\u0905\u092D\u0940 \u0924\u0915 \u0915\u0941\u091B \u0928\u0939\u0940\u0902 \u092D\u0947\u091C\u093E \u0917\u092F\u093E \u0939\u0948",
81257
- "destinations.openIntegrations": "\u090F\u0915\u0940\u0915\u0930\u0923\u2026",
81258
81091
  "destinations.place": "{name} \xB7 {target}",
81259
81092
  "destinations.publishFirst": "\u092A\u0939\u0932\u0947 \u092A\u094D\u0930\u0915\u093E\u0936\u093F\u0924 \u0915\u0930\u0947\u0902",
81260
81093
  "destinations.remove": "\u0917\u0902\u0924\u0935\u094D\u092F \u0939\u091F\u093E\u090F\u0901",
@@ -83084,12 +82917,6 @@ var require_hi = __commonJS({
83084
82917
  "resizeDialog.custom": "\u0915\u0938\u094D\u091F\u092E\u2026",
83085
82918
  "resizeDialog.magicResize": "\u092E\u0948\u091C\u093F\u0915 \u0930\u0940\u0938\u093E\u0907\u091C\u093C",
83086
82919
  "resizeDialog.size": "\u0906\u0915\u093E\u0930",
83087
- "resourcePicker.choose": "\u091A\u0941\u0928\u0947\u0902\u2026",
83088
- "resourcePicker.create": "\u092C\u0928\u093E\u090F\u0901",
83089
- "resourcePicker.createNew": "\u0928\u092F\u093E \u092C\u0928\u093E\u090F\u0901\u2026",
83090
- "resourcePicker.failed": "\u0916\u093E\u0924\u093E \u092A\u0922\u093C\u093E \u0928\u0939\u0940\u0902 \u091C\u093E \u0938\u0915\u093E\u0964 \u092A\u0941\u0928\u0903 \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902\u0964",
83091
- "resourcePicker.newName": "\u0928\u093E\u092E",
83092
- "resourcePicker.option": "{name} \xB7 {detail}",
83093
82920
  "restoreAccount.back": "\u0906\u092A\u0915\u093E \u0916\u093E\u0924\u093E \u0935\u093E\u092A\u0938 \u0906 \u0917\u092F\u093E \u0939\u0948",
83094
82921
  "restoreAccount.backBody": "\u0906\u092A\u0915\u0940 \u092B\u093C\u093E\u0907\u0932\u0947\u0902, \u0932\u093E\u0907\u092C\u094D\u0930\u0947\u0930\u0940, \u091F\u0947\u092E\u094D\u092A\u0932\u0947\u091F \u0914\u0930 \u092A\u094D\u0932\u0917\u0907\u0928\u094D\u0938 \u0935\u0939\u0940\u0902 \u0939\u0948\u0902 \u091C\u0939\u093E\u0901 \u0906\u092A\u0928\u0947 \u0909\u0928\u094D\u0939\u0947\u0902 \u091B\u094B\u0921\u093C\u093E \u0925\u093E\u0964 \u091F\u0940\u092E\u094B\u0902 \u0915\u094B \u0906\u092A\u0915\u094B \u092B\u093F\u0930 \u0938\u0947 \u0906\u092E\u0902\u0924\u094D\u0930\u093F\u0924 \u0915\u0930\u0928\u093E \u0939\u094B\u0917\u093E\u0964",
83095
82922
  "restoreAccount.couldNotRestore": "\u0906\u092A\u0915\u093E \u0916\u093E\u0924\u093E \u092A\u0941\u0928\u0930\u094D\u0938\u094D\u0925\u093E\u092A\u093F\u0924 \u0928\u0939\u0940\u0902 \u0915\u093F\u092F\u093E \u091C\u093E \u0938\u0915\u093E\u0964 \u092A\u0941\u0928\u0903 \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902\u0964",
@@ -83298,11 +83125,7 @@ var require_hi = __commonJS({
83298
83125
  "showAdvanceControl.whenAnimationEnds": "\u091C\u092C \u090F\u0928\u093F\u092E\u0947\u0936\u0928 \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u094B",
83299
83126
  "sidebar.overview": "\u0905\u0935\u0932\u094B\u0915\u0928",
83300
83127
  "sidebarResizer.dragToResizeDoubleClick": "\u0906\u0915\u093E\u0930 \u092C\u0926\u0932\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0916\u0940\u0902\u091A\u0947\u0902 \xB7 \u0930\u0940\u0938\u0947\u091F \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0921\u092C\u0932-\u0915\u094D\u0932\u093F\u0915 \u0915\u0930\u0947\u0902",
83301
- "siteDatabase.attach": "\u090F\u0915 \u0921\u0947\u091F\u093E\u092C\u0947\u0938 \u091C\u094B\u0921\u093C\u0947\u0902",
83302
- "siteDatabase.attaching": "\u091C\u094B\u0921\u093C\u093E \u091C\u093E \u0930\u0939\u093E \u0939\u0948\u2026",
83303
- "siteDatabase.attachThis": "\u091C\u094B\u0921\u093C\u0947\u0902",
83304
83128
  "siteDatabase.close": "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
83305
- "siteDatabase.connectFirst": "\u092A\u0939\u0932\u0947 \u090F\u0915 Neon \u0916\u093E\u0924\u093E \u0915\u0928\u0947\u0915\u094D\u091F \u0915\u0930\u0947\u0902\u0964",
83306
83129
  "siteDatabase.detach": "\u0905\u0932\u0917 \u0915\u0930\u0947\u0902",
83307
83130
  "siteDatabase.failed": "\u0915\u0941\u091B \u0917\u0932\u0924 \u0939\u094B \u0917\u092F\u093E\u0964 \u092B\u093F\u0930 \u0938\u0947 \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902\u0964",
83308
83131
  "siteDatabase.form": "\u092B\u093C\u0949\u0930\u094D\u092E",
@@ -86114,6 +85937,7 @@ function repairDocumentPaints(doc2) {
86114
85937
  var broken;
86115
85938
  var init_paint_repair = __esm({
86116
85939
  "lib/document/paint-repair.ts"() {
85940
+ "use strict";
86117
85941
  init_shader_graph();
86118
85942
  broken = (p2) => {
86119
85943
  if (!p2 || typeof p2 !== "object") return false;
@@ -87338,7 +87162,6 @@ function relinkCopies(doc2, copies) {
87338
87162
  var TEXT_PATH_SOURCE_TYPES, isPathSource;
87339
87163
  var init_text_links = __esm({
87340
87164
  "lib/document/text-links.ts"() {
87341
- "use strict";
87342
87165
  init_transform();
87343
87166
  TEXT_PATH_SOURCE_TYPES = ["VECTOR", "ELLIPSE", "RECTANGLE", "POLYGON", "STAR", "LINE", "ARROW", "FRAME"];
87344
87167
  isPathSource = (n) => !!n && TEXT_PATH_SOURCE_TYPES.includes(n.type);
@@ -88050,7 +87873,6 @@ function isAutoLayout(node2) {
88050
87873
  }
88051
87874
  var init_auto_layout = __esm({
88052
87875
  "lib/document/auto-layout.ts"() {
88053
- "use strict";
88054
87876
  init_instance_layout();
88055
87877
  setLayoutEngine(applyAutoLayout);
88056
87878
  }
@@ -89015,6 +88837,7 @@ function estimateBpm(onsets) {
89015
88837
  var WINDOW, HOP, NEIGHBOURS, MIN_GAP_MS, RISE_BACK, SILENCE, QUIET_DB;
89016
88838
  var init_audio_onsets = __esm({
89017
88839
  "lib/motion/audio-onsets.ts"() {
88840
+ "use strict";
89018
88841
  WINDOW = 1024;
89019
88842
  HOP = 256;
89020
88843
  NEIGHBOURS = 16;
@@ -90854,7 +90677,6 @@ function layerInputPatch(node2, name2, path) {
90854
90677
  var NO_RUNTIME, MAX_DEPTH, freshIndex, indexOf, isComponentLike, selfStarting, startedAt, endMemo, HOST_OWNS, rootTracksMemo, layerMemo, idle;
90855
90678
  var init_instances2 = __esm({
90856
90679
  "lib/motion/instances.ts"() {
90857
- "use strict";
90858
90680
  init_node_delta();
90859
90681
  init_instances();
90860
90682
  init_scene_graph();
@@ -91126,7 +90948,6 @@ function repairStateMachine(raw, markerIds, hasNode) {
91126
90948
  var STATE_MACHINE_INPUT_TYPES, STATE_MACHINE_GUARD_OPS, STATE_MACHINE_ACTION_TYPES, STATE_MACHINE_LISTENER_TYPES, isKeyListener, ANY_STATE, MAX_STEPS2, byId2, sortedValues, machineOf, startValue, isObj3, finite4, isValue, goodId;
91127
90949
  var init_state_machine = __esm({
91128
90950
  "lib/motion/state-machine.ts"() {
91129
- "use strict";
91130
90951
  STATE_MACHINE_INPUT_TYPES = ["boolean", "number", "string", "event"];
91131
90952
  STATE_MACHINE_GUARD_OPS = ["eq", "neq", "gt", "gte", "lt", "lte"];
91132
90953
  STATE_MACHINE_ACTION_TYPES = ["set", "toggle", "increment", "decrement", "fire", "reset"];
@@ -235307,7 +235128,6 @@ function repairCompositions(comps, nodes) {
235307
235128
  var isObj5, finite6, optFinite, isVec2, TIMELINE_COLOR_IDS, TIMELINE_COLORS, UNITS, ORDERS, PROP_KEYS, ANIMATOR_ID, MOTION_TYPES, TRANSITIONS, isFraction, MEDIA_HASH;
235308
235129
  var init_invariants = __esm({
235309
235130
  "lib/motion/invariants.ts"() {
235310
- "use strict";
235311
235131
  init_easing();
235312
235132
  init_properties();
235313
235133
  init_markers();
@@ -239832,7 +239652,6 @@ function resizeWindow(doc2, target2, rect) {
239832
239652
  }
239833
239653
  var init_crop = __esm({
239834
239654
  "lib/editor/crop.ts"() {
239835
- "use strict";
239836
239655
  init_dist_node();
239837
239656
  init_scene_graph();
239838
239657
  init_photo_frames();
@@ -243355,7 +243174,6 @@ fn shade(uv: vec2<f32>, res: vec2<f32>, tm: f32) -> vec4<f32> {
243355
243174
  var SHADER_PRESETS, shaderPreset, legacyPresetOf, DEFAULT_SHADER_PRESET, DEFAULT_TEXTURE_PARAMS, f, vec4, NOISE_LIB;
243356
243175
  var init_shader_presets = __esm({
243357
243176
  "lib/engine/shader-presets.ts"() {
243358
- "use strict";
243359
243177
  init_shader_graph();
243360
243178
  init_shader_graph_presets();
243361
243179
  init_shader_presets_legacy();
@@ -248676,6 +248494,7 @@ function removeRecords(doc2, ids2) {
248676
248494
  var COLLECTION_LIMITS, slugify2, dataMemo, withData, ITEM_RECORD, MARK, itemMark, templateRecord, compare, TOKEN2, hasItemToken, layerId, copyRecord, coerce3, newId;
248677
248495
  var init_collections = __esm({
248678
248496
  "lib/document/collections.ts"() {
248497
+ "use strict";
248679
248498
  init_expressions2();
248680
248499
  init_variables();
248681
248500
  init_contract();
@@ -293014,6 +292833,7 @@ function playSegments(tr, elapsed, horizon) {
293014
292833
  var MIX_SAMPLE_RATE, toSample, sourceKey2;
293015
292834
  var init_audio_plan = __esm({
293016
292835
  "lib/motion/audio-plan.ts"() {
292836
+ "use strict";
293017
292837
  init_audio_clips();
293018
292838
  MIX_SAMPLE_RATE = 48e3;
293019
292839
  toSample = (ms2, rate) => Math.round(ms2 * rate / 1e3);
@@ -296878,6 +296698,7 @@ function startCloudSync() {
296878
296698
  var status, readOnlyDoc, activeLink, statusListeners, notice, urlArmed, opening, syncStatus, canEdit, uploaded, MEDIA_UPLOAD_PARALLEL, pushTimer, pushing, dirty, pendingMedia, collab, collabSession, collabAnonymous, uploadedThumbs, thumbCheckedAt, THUMB_EVERY_MS, putThumbnail, openingFiles, mediaHealed, started;
296879
296699
  var init_sync2 = __esm({
296880
296700
  "lib/client/cloud/sync.ts"() {
296701
+ "use strict";
296881
296702
  init_paint_repair();
296882
296703
  init_migrate();
296883
296704
  init_view();
@@ -297249,6 +297070,7 @@ function downloadBlob(blob, filename) {
297249
297070
  }
297250
297071
  var init_download = __esm({
297251
297072
  "lib/io/download.ts"() {
297073
+ "use strict";
297252
297074
  }
297253
297075
  });
297254
297076
 
@@ -301126,6 +300948,7 @@ ${photoCreditsText(credits).replace(/]]>/g, "]]]]><![CDATA[>")}]]></metadata>` :
301126
300948
  var resolvedFills2, resolvedStrokes2, roundedRectPath, shapePathFor, childrenOf2, rootMatrix2;
301127
300949
  var init_svg_export = __esm({
301128
300950
  "lib/io/svg-export.ts"() {
300951
+ "use strict";
301129
300952
  init_credits();
301130
300953
  init_media_store();
301131
300954
  init_pattern_fill();
@@ -302303,6 +302126,7 @@ async function writeImage(w, img, color4) {
302303
302126
  var PT, MARK_LEN, MARK_GAP, MAX_TEX, MAX_RASTER_PIXELS, posterFrames, pdfOptionsFor;
302304
302127
  var init_pdf = __esm({
302305
302128
  "lib/io/pdf/index.ts"() {
302129
+ "use strict";
302306
302130
  init_credits();
302307
302131
  init_scene_graph();
302308
302132
  init_export_fills();
@@ -302467,6 +302291,7 @@ async function exportSettingFile(renderer, node2, setting, doc2, styles) {
302467
302291
  var MIME, DEFAULT_EXPORT, exportSettingsOf;
302468
302292
  var init_export = __esm({
302469
302293
  "lib/io/export.ts"() {
302294
+ "use strict";
302470
302295
  init_download();
302471
302296
  init_scene_graph();
302472
302297
  init_codecs();
@@ -308580,6 +308405,7 @@ var init_motion_shared = __esm({
308580
308405
  var layer, CODE_FORMATS, CODE_FORMAT_IDS, codeFormat, isLayerFormat, layerFormats, downloadFormats;
308581
308406
  var init_formats = __esm({
308582
308407
  "lib/io/web/formats.ts"() {
308408
+ "use strict";
308583
308409
  layer = (o) => ({ scope: "layer", download: true, pictures: "svg", platform: "WEB", plays: false, ...o });
308584
308410
  CODE_FORMATS = {
308585
308411
  css: layer({ label: "CSS", note: "The stylesheet alone.", extension: "css", mime: "text/css", plays: true, download: false }),
@@ -312430,10 +312256,10 @@ function serverFiles(server) {
312430
312256
  const files = [
312431
312257
  { path: "lib/popcraft-server.ts", content: lines(
312432
312258
  "// The site's own server: the forms it keeps and the lists its visitors keep records in (from the design), its",
312433
- "// database (DATABASE_URL) and its sign-in (NEON_AUTH_URL). app/api/popcraft answers the pages through it.",
312259
+ "// database (DATABASE_URL) and its sign-in (SITE_AUTH_URL). app/api/popcraft answers the pages through it.",
312434
312260
  "",
312435
312261
  "import type { Collection } from '@popcraft/runtime'",
312436
- "import { neonStore, type SiteBackend, type SiteDatabase } from '@popcraft/runtime/server'",
312262
+ "import { storeFor, type AuthKind, type SiteBackend, type SiteDatabase } from '@popcraft/runtime/server'",
312437
312263
  "import { siteUrl } from '@/lib/site'",
312438
312264
  "",
312439
312265
  `const FORMS = new Set<string>(${JSON.stringify(server.forms)})`,
@@ -312445,14 +312271,21 @@ function serverFiles(server) {
312445
312271
  "function database(): Promise<SiteDatabase | null> {",
312446
312272
  " const url = process.env.DATABASE_URL",
312447
312273
  " if (!url) return Promise.resolve(null)",
312448
- " ready ??= (async () => { const db = neonStore(url); await db.ensure(); return db })().catch((e: unknown) => { ready = null; throw e })",
312274
+ " ready ??= (async () => { const db = storeFor(url); await db.ensure(); return db })().catch((e: unknown) => { ready = null; throw e })",
312449
312275
  " return ready",
312450
312276
  "}",
312451
312277
  "",
312278
+ "/** The site's sign-in service (Neon Auth or Supabase Auth), told the site's own address. NEON_AUTH_URL is its older name. */",
312279
+ "async function auth() {",
312280
+ " const authUrl = process.env.SITE_AUTH_URL ?? process.env.NEON_AUTH_URL",
312281
+ " if (!authUrl) return null",
312282
+ " const kind = (process.env.SITE_AUTH_KIND as AuthKind | undefined) ?? 'neon-auth'",
312283
+ " return { kind, authUrl, origin: siteUrl.origin, apiKey: process.env.SITE_AUTH_KEY, adminKey: process.env.SITE_AUTH_ADMIN_KEY }",
312284
+ "}",
312285
+ "",
312452
312286
  "export const site: SiteBackend = {",
312453
312287
  " database,",
312454
- " // Neon Auth, told the site's own address (it must be one of the trusted domains in the Neon console).",
312455
- " auth: async () => (process.env.NEON_AUTH_URL ? { authUrl: process.env.NEON_AUTH_URL, origin: siteUrl.origin } : null),",
312288
+ " auth,",
312456
312289
  " hasForm: id => FORMS.has(id),",
312457
312290
  " collection: id => COLLECTIONS[id],",
312458
312291
  " // Over https in production; `next dev` serves http, where a Secure cookie would not be kept.",
@@ -312626,13 +312459,13 @@ function serverReadme(server) {
312626
312459
  return `## Forms${server.signIn ? ", accounts" : ""} and data
312627
312460
 
312628
312461
  The site has a server of its own (\`app/api/popcraft\`, through \`@popcraft/runtime/server\`): it keeps what its forms
312629
- send${server.signIn ? ", signs visitors up and in with Neon Auth" : ""}${server.collections.length ? ", and keeps each visitor's own records" : ""}. Copy \`.env.example\` to
312462
+ send${server.signIn ? ", signs visitors up and in with the database's own sign-in (Neon Auth or Supabase Auth)" : ""}${server.collections.length ? ", and keeps each visitor's own records" : ""}. Copy \`.env.example\` to
312630
312463
  \`.env.local\` and set:
312631
312464
 
312632
312465
  | Variable | What it is |
312633
312466
  | --- | --- |
312634
- | \`DATABASE_URL\` | A Postgres connection string (a Neon project's). The site makes its two tables on first use |
312635
- ${server.signIn ? "| `NEON_AUTH_URL` | The Neon project's Auth URL (Neon console \u2192 Auth). Add the site's address to its trusted domains |\n" : ""}| \`NEXT_PUBLIC_SITE_URL\` | The site's address${server.signIn ? " (the origin Neon Auth is told visitors come from)" : ""} |
312467
+ | \`DATABASE_URL\` | A Postgres connection string (a Neon or Supabase project's). The site makes its two tables on first use |
312468
+ ${server.signIn ? "| `SITE_AUTH_KIND` | `neon-auth` or `supabase-auth` |\n| `SITE_AUTH_URL` | The sign-in service: a Neon project's Auth URL (Neon console \u2192 Auth), or `https://<project>.supabase.co/auth/v1`. Add the site's address to its trusted domains / redirect URLs |\n| `SITE_AUTH_KEY` | Supabase only: the project's anon key |\n| `SITE_AUTH_ADMIN_KEY` | Supabase only, optional: the service-role key, so visitors can delete their accounts |\n" : ""}| \`NEXT_PUBLIC_SITE_URL\` | The site's address${server.signIn ? " (the origin the sign-in service is told visitors come from)" : ""} |
312636
312469
 
312637
312470
  Without \`DATABASE_URL\` the pages still work: forms are sent and not kept${server.signIn ? ", and nobody can sign in" : ""}.
312638
312471
 
@@ -312731,7 +312564,7 @@ var init_package = __esm({
312731
312564
  "packages/runtime/package.json"() {
312732
312565
  package_default = {
312733
312566
  name: "@popcraft/runtime",
312734
- version: "0.5.1",
312567
+ version: "0.6.0",
312735
312568
  description: "What code exported from PopCraft shares: the meaning of expressions (operators and functions) and, as it grows, the parts of a design's behaviour that are common code rather than generated React.",
312736
312569
  license: "MIT",
312737
312570
  homepage: "https://popcraft.app/docs/exporting/nextjs",
@@ -312771,7 +312604,8 @@ var init_package = __esm({
312771
312604
  esbuild: "0.28.2"
312772
312605
  },
312773
312606
  dependencies: {
312774
- "@neondatabase/serverless": "^1.1.0"
312607
+ "@neondatabase/serverless": "^1.1.0",
312608
+ postgres: "^3.4.5"
312775
312609
  }
312776
312610
  };
312777
312611
  }
@@ -312945,8 +312779,8 @@ ${source3}` });
312945
312779
  "# The address the site is served from: used for its sitemap, robots.txt and social previews" + (server?.signIn ? ", and the origin" : ""),
312946
312780
  ...server?.signIn ? ["# its sign-in service is told visitors come from."] : [],
312947
312781
  "NEXT_PUBLIC_SITE_URL=https://example.com",
312948
- ...server ? ["", "# The Postgres database the site keeps its forms and its visitors' records in (Neon: the project's connection string).", "# Two tables of its own are made on first use. Unset, forms are not kept and nobody can sign in.", "DATABASE_URL=postgresql://user:password@host/db?sslmode=require"] : [],
312949
- ...server?.signIn ? ["", "# Neon Auth: the project's Auth URL (Neon console \u2192 Auth). Add NEXT_PUBLIC_SITE_URL to its trusted domains.", "NEON_AUTH_URL=https://ep-example.neonauth.us-east-2.aws.neon.build/neondb/auth"] : [],
312782
+ ...server ? ["", "# The Postgres database the site keeps its forms and its visitors' records in (a Neon or Supabase project's connection string).", "# Two tables of its own are made on first use. Unset, forms are not kept and nobody can sign in.", "DATABASE_URL=postgresql://user:password@host/db?sslmode=require"] : [],
312783
+ ...server?.signIn ? ["", "# Sign-in: neon-auth (the Neon project's Auth URL, Neon console \u2192 Auth) or supabase-auth", "# (https://<project>.supabase.co/auth/v1 and its anon key). Add NEXT_PUBLIC_SITE_URL to its trusted domains.", "SITE_AUTH_KIND=neon-auth", "SITE_AUTH_URL=https://ep-example.neonauth.us-east-2.aws.neon.build/neondb/auth", "SITE_AUTH_KEY=", "SITE_AUTH_ADMIN_KEY="] : [],
312950
312784
  ""
312951
312785
  ].join("\n") });
312952
312786
  files.push({ path: "README.md", content: readme(site, { tailwind, fonts, routes, code: moduleFile.size > 0, server }) });
@@ -337084,6 +336918,7 @@ function hashOf(text) {
337084
336918
  }
337085
336919
  var init_hash = __esm({
337086
336920
  "lib/code/hash.ts"() {
336921
+ "use strict";
337087
336922
  }
337088
336923
  });
337089
336924
 
@@ -337583,6 +337418,7 @@ function fieldPart(nodes, id3) {
337583
337418
  var cleanName2;
337584
337419
  var init_controls = __esm({
337585
337420
  "lib/document/controls.ts"() {
337421
+ "use strict";
337586
337422
  cleanName2 = (raw) => raw.trim().replace(/[^A-Za-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "");
337587
337423
  }
337588
337424
  });
@@ -338824,6 +338660,7 @@ function webTreeFor(doc2, nodeId2, lang, opts = {}) {
338824
338660
  var WEB_LANGUAGES, assetKindFor, playsMotion, WRITERS, serializeFor, extensionFor;
338825
338661
  var init_web = __esm({
338826
338662
  "lib/io/web/index.ts"() {
338663
+ "use strict";
338827
338664
  init_compose2();
338828
338665
  init_email();
338829
338666
  init_html();
@@ -339016,6 +338853,7 @@ function rendererAssetResolvers(doc2, scale = 2) {
339016
338853
  var nodeFor, mainNodeFor, asDataURL;
339017
338854
  var init_resolvers = __esm({
339018
338855
  "lib/io/web/resolvers.ts"() {
338856
+ "use strict";
339019
338857
  init_scene_graph();
339020
338858
  init_renderer_registry();
339021
338859
  init_export();
@@ -341382,6 +341220,7 @@ function diagnosticsText(diagnostics) {
341382
341220
  var HARNESS_NAMES, plainDiagnostics;
341383
341221
  var init_shader_diagnostics = __esm({
341384
341222
  "lib/engine/shader-diagnostics.ts"() {
341223
+ "use strict";
341385
341224
  HARNESS_NAMES = ["ShaderUniforms", "VOut", "vs_main", "fs_main", "u", "p"];
341386
341225
  plainDiagnostics = (errors2) => errors2.map((message) => ({ line: null, column: null, message, severity: "error" }));
341387
341226
  }
@@ -344453,11 +344292,14 @@ __export(integrations_exports, {
344453
344292
  attachDatabase: () => attachDatabase,
344454
344293
  connectWithOAuth: () => connectWithOAuth,
344455
344294
  connectWithToken: () => connectWithToken,
344295
+ createDatabase: () => createDatabase,
344296
+ createDestination: () => createDestination,
344456
344297
  createResource: () => createResource,
344457
344298
  deployDestination: () => deployDestination,
344458
344299
  detachDatabase: () => detachDatabase,
344459
344300
  disconnect: () => disconnect,
344460
344301
  integrationsWorkspaceId: () => integrationsWorkspaceId,
344302
+ listCandidates: () => listCandidates,
344461
344303
  listDestinations: () => listDestinations,
344462
344304
  listResources: () => listResources,
344463
344305
  listSubmissions: () => listSubmissions,
@@ -344497,7 +344339,7 @@ function connectWithOAuth(workspaceId, provider2) {
344497
344339
  });
344498
344340
  });
344499
344341
  }
344500
- var integrationsWorkspaceId, listWorkspaceIntegrations, connectWithToken, disconnect, listResources, createResource, listDestinations, addDestination, removeDestination, deployDestination, siteBackend, attachDatabase, setSignIn, detachDatabase, listSubmissions;
344342
+ var integrationsWorkspaceId, listWorkspaceIntegrations, connectWithToken, disconnect, listResources, createResource, listDestinations, addDestination, removeDestination, deployDestination, siteBackend, attachDatabase, setSignIn, detachDatabase, listSubmissions, listCandidates, createDatabase, createDestination;
344501
344343
  var init_integrations = __esm({
344502
344344
  "lib/client/cloud/integrations.ts"() {
344503
344345
  init_api4();
@@ -344517,6 +344359,9 @@ var init_integrations = __esm({
344517
344359
  setSignIn = (key5, signIn) => api(`/api/sites/${key5}/backend`, { method: "PATCH", json: { signIn } });
344518
344360
  detachDatabase = (key5) => api(`/api/sites/${key5}/backend`, { method: "DELETE" });
344519
344361
  listSubmissions = async (key5, opts = {}) => (await api(`/api/sites/${key5}/backend/submissions?limit=${opts.limit ?? 100}${opts.form ? `&form=${encodeURIComponent(opts.form)}` : ""}`)).submissions;
344362
+ listCandidates = async (workspaceId, capability2) => (await api(`/api/workspaces/${encodeURIComponent(workspaceId)}/integrations/candidates?capability=${capability2}`)).candidates;
344363
+ createDatabase = (key5, provider2, connectionId) => api(`/api/sites/${key5}/backend`, { method: "PUT", json: { create: true, ...provider2 ? { provider: provider2 } : {}, ...connectionId ? { connectionId } : {} } });
344364
+ createDestination = async (key5, capability2, provider2, connectionId) => (await api(`/api/sites/${key5}/destinations`, { method: "POST", json: { create: true, capability: capability2, ...provider2 ? { provider: provider2 } : {}, ...connectionId ? { connectionId } : {} } })).destination;
344520
344365
  }
344521
344366
  });
344522
344367
 
@@ -344873,7 +344718,6 @@ function designFrameOf(doc2, id3) {
344873
344718
  }
344874
344719
  var init_locate = __esm({
344875
344720
  "lib/agent/design-script/locate.ts"() {
344876
- "use strict";
344877
344721
  }
344878
344722
  });
344879
344723
 
@@ -345112,7 +344956,6 @@ function placeDesign(doc2, built, source3, size6, name2, at3) {
345112
344956
  var DESIGN_NAMESPACES, DERIVED2, templateOfBuild;
345113
344957
  var init_build3 = __esm({
345114
344958
  "lib/agent/design-script/build.ts"() {
345115
- "use strict";
345116
344959
  init_hash();
345117
344960
  init_scene_graph();
345118
344961
  init_libraries();
@@ -346323,6 +346166,12 @@ async function openFile() {
346323
346166
  if (!key5) throw new CommandError("This file is not saved to the cloud yet. Publish it first (publish_site).", "failed");
346324
346167
  return key5;
346325
346168
  }
346169
+ function attached(done, ctx2) {
346170
+ const db3 = done.database;
346171
+ const where = db3.target.slice(1).map((t3) => t3.name).join(" / ");
346172
+ ctx2.notice(`Database attached: ${where}`);
346173
+ return { summary: `Attached ${where} (${db3.connection.provider}, ${db3.connection.account}): the site's forms are saved there once it is published`, data: { provider: db3.connection.provider, account: db3.connection.account, target: db3.target } };
346174
+ }
346326
346175
  var integrationList, integrationOpen, asPath2, integrationListResources, place2, integrationAddDestination, integrationDeploy, integrationAttachDatabase, integrationSubmissions, integrationSetSignIn, integrationConfirmCommands;
346327
346176
  var init_integration = __esm({
346328
346177
  "lib/commands/integration.ts"() {
@@ -346415,7 +346264,7 @@ var init_integration = __esm({
346415
346264
  };
346416
346265
  }
346417
346266
  });
346418
- place2 = (p2) => `${p2.capability === "repo" ? "the repository" : "the hosting project"} ${[...p2.target, ...p2.createNamed ? [`${p2.createNamed} (new)`] : []].join(" / ")}`;
346267
+ place2 = (p2) => p2.create ? `a new ${p2.capability === "repo" ? "repository" : "hosting project"} named after the site` : `${p2.capability === "repo" ? "the repository" : "the hosting project"} ${[...p2.target ?? [], ...p2.createNamed ? [`${p2.createNamed} (new)`] : []].join(" / ")}`;
346419
346268
  integrationAddDestination = defineCommand({
346420
346269
  id: "integration.addDestination",
346421
346270
  title: "Add a destination for the site",
@@ -346423,28 +346272,34 @@ var init_integration = __esm({
346423
346272
  effect: "none",
346424
346273
  permission: null,
346425
346274
  params: external_exports.object({
346426
- connectionId: external_exports.string().describe("The connected account, from list_integrations."),
346427
- capability: external_exports.enum(["repo", "deploy"]).describe("repo: a GitHub repository to commit the site to. deploy: a Vercel project to deploy it to."),
346428
- target: external_exports.array(external_exports.string()).min(1).max(6).describe("The ids of the place, outermost first, from list_integration_resources: [owner, repository] or [team, project]. When creating a new one, everything but the last level."),
346429
- createNamed: external_exports.string().trim().min(1).max(100).optional().describe("Make a new repository or project with this name under target, and use it.")
346275
+ connectionId: external_exports.string().optional().describe("The connected account, from list_integrations. With create, optional: the account last used."),
346276
+ capability: external_exports.enum(["repo", "deploy"]).describe("repo: a repository to commit the site to (GitHub). deploy: a hosting project to deploy it to (Vercel)."),
346277
+ target: external_exports.array(external_exports.string()).min(1).max(6).optional().describe("The ids of the place, outermost first, from list_integration_resources: [owner, repository] or [team, project]. When creating a new one with createNamed, everything but the last level."),
346278
+ createNamed: external_exports.string().trim().min(1).max(100).optional().describe("Make a new repository or project with this name under target, and use it."),
346279
+ create: external_exports.boolean().optional().describe("The short way: make a new one named after the site in the account (connectionId, else the one last used, in its personal space) and use it. No target needed.")
346430
346280
  }),
346431
346281
  confirm: {
346432
346282
  level: "confirm",
346433
346283
  summary: (p2) => `${p2.createNamed ? "Create and use" : "Use"} ${place2(p2)} as a destination for this file's site`,
346434
- detail: (p2) => p2.createNamed ? "A new one is made in the connected account (a private repository, or a project), which may count toward that account's plan. Nothing is sent to it until the site is deployed there." : "Nothing is sent until the site is deployed there. Files PopCraft did not write are left as they are."
346284
+ detail: (p2) => p2.createNamed || p2.create ? "A new one is made in the connected account (a private repository, or a project), which may count toward that account's plan. Nothing is sent to it until the site is deployed there." : "Nothing is sent until the site is deployed there. Files PopCraft did not write are left as they are."
346435
346285
  },
346436
346286
  expose: {
346437
346287
  agent: {
346438
346288
  name: "add_site_destination",
346439
- description: "Choose where this file's site also goes: a GitHub repository (repo) or a Vercel project (deploy) inside a connected account, or a new one made there (createNamed). It only records the choice; deploy_site sends the site. The user approves every call."
346289
+ description: "Choose where this file's site also goes: a repository (repo, GitHub) or a hosting project (deploy, Vercel) inside a connected account. create: true makes a new one named after the site in one step (prefer it when the user has no place in mind); otherwise pick one with list_integration_resources, or createNamed under a target. It only records the choice; deploy_site sends the site. The user approves every call."
346440
346290
  }
346441
346291
  },
346442
346292
  run: async (p2, ctx2) => {
346443
346293
  const key5 = await openFile();
346444
- const { addDestination: addDestination2, createResource: createResource2 } = await Promise.resolve().then(() => (init_integrations(), integrations_exports));
346445
- const path = asPath2(p2.target);
346446
- const target2 = p2.createNamed ? [...path, await createResource2(p2.connectionId, p2.capability, path, p2.createNamed)] : path;
346447
- const made = await addDestination2(key5, p2.connectionId, p2.capability, target2);
346294
+ const { addDestination: addDestination2, createDestination: createDestination2, createResource: createResource2 } = await Promise.resolve().then(() => (init_integrations(), integrations_exports));
346295
+ let made;
346296
+ if (p2.create) made = await createDestination2(key5, p2.capability, void 0, p2.connectionId);
346297
+ else {
346298
+ if (!p2.connectionId || !p2.target) throw new CommandError("Say connectionId and target, or create: true.", "invalid_params");
346299
+ const path = asPath2(p2.target);
346300
+ const target2 = p2.createNamed ? [...path, await createResource2(p2.connectionId, p2.capability, path, p2.createNamed)] : path;
346301
+ made = await addDestination2(key5, p2.connectionId, p2.capability, target2);
346302
+ }
346448
346303
  const where = made.target.map((t3) => t3.name).join(" / ");
346449
346304
  ctx2.notice(`Destination added: ${where}`);
346450
346305
  return { summary: `Added ${where} (${made.connection.provider}, ${made.connection.account}) as a destination`, data: { destinationId: made.id, provider: made.connection.provider, account: made.connection.account, target: made.target } };
@@ -346489,24 +346344,27 @@ var init_integration = __esm({
346489
346344
  effect: "none",
346490
346345
  permission: null,
346491
346346
  params: external_exports.object({
346492
- connectionId: external_exports.string().describe("The connected database account (Neon), from list_integrations."),
346493
- target: external_exports.array(external_exports.string()).min(1).max(6).describe("The ids of the database, outermost first, from list_integration_resources (capability database): [organization, project, database]. When creating, everything above the new one."),
346347
+ connectionId: external_exports.string().optional().describe("The connected database account (Neon, Supabase), from list_integrations. With create, optional: the account last used."),
346348
+ target: external_exports.array(external_exports.string()).min(1).max(6).optional().describe("The ids of the database, outermost first, from list_integration_resources (capability database): Neon [organization, project, database], Supabase [organization, project]. When creating with createNamed, everything above the new one."),
346349
+ create: external_exports.boolean().optional().describe("The short way: make a new database named after the site in the account (connectionId, else the one last used) and attach it. No target needed."),
346494
346350
  createNamed: external_exports.string().trim().min(1).max(100).optional().describe("Make a new one with this name under target and use it: a project when target is [organization] (its first database is then used), a database when target is [organization, project].")
346495
346351
  }),
346496
346352
  confirm: {
346497
346353
  level: "confirm",
346498
- summary: (p2) => `${p2.createNamed ? "Create and attach" : "Attach"} the database ${[...p2.target, ...p2.createNamed ? [`${p2.createNamed} (new)`] : []].join(" / ")} to this file's site`,
346499
- detail: (p2) => `${p2.createNamed ? "A new one is made in the connected account, which may count toward that account's plan. " : ""}What visitors send through the site's forms is kept there from then on, in a table PopCraft makes (popcraft_submissions). Nothing else in the database is touched.`
346354
+ summary: (p2) => p2.create ? "Create a new database named after the site and attach it to this file's site" : `${p2.createNamed ? "Create and attach" : "Attach"} the database ${[...p2.target ?? [], ...p2.createNamed ? [`${p2.createNamed} (new)`] : []].join(" / ")} to this file's site`,
346355
+ detail: (p2) => `${p2.createNamed || p2.create ? "A new one is made in the connected account, which may count toward that account's plan. " : ""}What visitors send through the site's forms is kept there from then on, in a table PopCraft makes (popcraft_submissions). Nothing else in the database is touched.`
346500
346356
  },
346501
346357
  expose: {
346502
346358
  agent: {
346503
346359
  name: "attach_database",
346504
- description: "Give this file's site a database of the user's own (in a connected Neon account), or a new one made there (createNamed): what visitors send through the site's forms is saved in it once the site is published. Find the place with list_integration_resources (capability database); with several candidates ask the user. The user approves every call."
346360
+ description: "Give this file's site a database of the user's own (in a connected Neon or Supabase account): what visitors send through the site's forms is saved in it once the site is published. create: true makes a new one named after the site in one step (prefer it when the user has no database in mind); otherwise find one with list_integration_resources (capability database) and ask the user when there are several, or createNamed under a target. The user approves every call."
346505
346361
  }
346506
346362
  },
346507
346363
  run: async (p2, ctx2) => {
346508
346364
  const key5 = await openFile();
346509
- const { attachDatabase: attachDatabase2, createResource: createResource2, listResources: listResources3 } = await Promise.resolve().then(() => (init_integrations(), integrations_exports));
346365
+ const { attachDatabase: attachDatabase2, createDatabase: createDatabase2, createResource: createResource2, listResources: listResources3 } = await Promise.resolve().then(() => (init_integrations(), integrations_exports));
346366
+ if (p2.create) return attached(await createDatabase2(key5, void 0, p2.connectionId), ctx2);
346367
+ if (!p2.connectionId || !p2.target) throw new CommandError("Say connectionId and target, or create: true.", "invalid_params");
346510
346368
  let target2 = asPath2(p2.target);
346511
346369
  if (p2.createNamed) {
346512
346370
  target2 = [...target2, await createResource2(p2.connectionId, "database", target2, p2.createNamed)];
@@ -346515,10 +346373,7 @@ var init_integration = __esm({
346515
346373
  target2 = [...target2, next2.resources[0]];
346516
346374
  }
346517
346375
  }
346518
- const done = await attachDatabase2(key5, p2.connectionId, target2);
346519
- const where = done.database.target.slice(1).map((t3) => t3.name).join(" / ");
346520
- ctx2.notice(`Database attached: ${where}`);
346521
- return { summary: `Attached ${where} (${done.database.connection.provider}, ${done.database.connection.account}): the site's forms are saved there once it is published`, data: { provider: done.database.connection.provider, account: done.database.connection.account, target: done.database.target } };
346376
+ return attached(await attachDatabase2(key5, p2.connectionId, target2), ctx2);
346522
346377
  }
346523
346378
  });
346524
346379
  integrationSubmissions = defineCommand({
@@ -346555,7 +346410,7 @@ var init_integration = __esm({
346555
346410
  confirm: {
346556
346411
  level: "confirm",
346557
346412
  summary: (p2) => p2.on ? "Let this site's visitors create accounts and sign in" : "Stop signing this site's visitors in",
346558
- detail: (p2) => p2.on ? "Sign-in (Neon Auth) is turned on for the site's database and told the site's address. Strangers can then make accounts on the site; their accounts, and the records that are each visitor's own, are kept in that database." : "Visitors can no longer sign in from the site. Their accounts and records stay in the database."
346413
+ detail: (p2) => p2.on ? "Sign-in (the database's own: Neon Auth, Supabase Auth) is turned on for the site's database and told the site's address. Strangers can then make accounts on the site; their accounts, and the records that are each visitor's own, are kept in that database." : "Visitors can no longer sign in from the site. Their accounts and records stay in the database."
346559
346414
  },
346560
346415
  expose: {
346561
346416
  agent: {
@@ -393164,7 +393019,7 @@ init_resources();
393164
393019
  init_desktop();
393165
393020
  init_hypery();
393166
393021
  import { createInterface } from "node:readline";
393167
- var VERSION2 = "0.5.1";
393022
+ var VERSION2 = "0.6.0";
393168
393023
  var HELP = `popcraft ${VERSION2} \u2014 the PopCraft command line
393169
393024
 
393170
393025
  Files (headless, on .popcraft files):
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@popcraft/cli",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "The PopCraft command line: edit .popcraft files headlessly, call the REST API, publish to the marketplace and manage the desktop app's local plugins, themes, fonts, skills and agents.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://popcraft.app/docs/api/cli",
@@ -34,7 +34,7 @@
34
34
  "esbuild": "0.28.2"
35
35
  },
36
36
  "dependencies": {
37
- "@popcraft/kit": "0.5.1"
37
+ "@popcraft/kit": "0.6.0"
38
38
  },
39
39
  "scripts": {
40
40
  "build": "node build.mjs",