From 12bb04e127abbfa350193e2630220810fdf078f4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Aug 2026 08:10:01 +0000 Subject: [PATCH] feat: move projects to atproto --- .gitignore | 3 + app/components/TheProjects.server.vue | 63 +- app/components/admin/ProjectCategoryForm.vue | 92 +++ app/components/admin/ProjectDraggable.vue | 95 +++ app/components/admin/ProjectForm.vue | 438 ++++++++++++ app/components/admin/Shell.vue | 1 + app/pages/admin/index.vue | 6 +- .../admin/projects/categories/[rkey].vue | 53 ++ app/pages/admin/projects/categories/new.vue | 23 + app/pages/admin/projects/index.vue | 184 ++++++ app/pages/admin/projects/items/[rkey].vue | 54 ++ app/pages/admin/projects/items/new.vue | 23 + lexicons/README.md | 13 +- lexicons/community/lexicon/app/defs.json | 295 +++++++++ lexicons/dev/roe/project.json | 70 ++ lexicons/dev/roe/projectCategory.json | 31 + modules/projects.ts | 94 --- nuxt.config.ts | 1 + package.json | 3 +- scripts/migrate-projects-to-atproto.ts | 276 ++++++++ .../admin/project-categories/[rkey].delete.ts | 6 + .../admin/project-categories/[rkey].get.ts | 6 + .../admin/project-categories/[rkey].put.ts | 7 + .../api/admin/project-categories/index.get.ts | 8 + .../admin/project-categories/index.post.ts | 7 + server/api/admin/projects/[rkey].delete.ts | 6 + server/api/admin/projects/[rkey].get.ts | 6 + server/api/admin/projects/[rkey].put.ts | 7 + server/api/admin/projects/index.get.ts | 8 + server/api/admin/projects/index.post.ts | 7 + server/api/admin/stats.get.ts | 6 +- server/api/projects.get.ts | 5 + server/routes/projects.md.get.ts | 15 +- server/utils/admin/oauth.ts | 2 + server/utils/cms/projects.ts | 97 +++ shared/cms/projects.ts | 25 + shared/lex/community.ts | 5 + shared/lex/community/lexicon.ts | 5 + shared/lex/community/lexicon/app.ts | 5 + shared/lex/community/lexicon/app/defs.defs.ts | 621 ++++++++++++++++++ shared/lex/community/lexicon/app/defs.ts | 5 + shared/lex/dev/roe.ts | 2 + shared/lex/dev/roe/project.defs.ts | 110 ++++ shared/lex/dev/roe/project.ts | 6 + shared/lex/dev/roe/projectCategory.defs.ts | 58 ++ shared/lex/dev/roe/projectCategory.ts | 6 + shared/lex/index.ts | 1 + shared/project-icons.ts | 41 ++ test/unit/bundle.spec.ts | 4 +- uno.config.ts | 4 +- 50 files changed, 2753 insertions(+), 156 deletions(-) create mode 100644 app/components/admin/ProjectCategoryForm.vue create mode 100644 app/components/admin/ProjectDraggable.vue create mode 100644 app/components/admin/ProjectForm.vue create mode 100644 app/pages/admin/projects/categories/[rkey].vue create mode 100644 app/pages/admin/projects/categories/new.vue create mode 100644 app/pages/admin/projects/index.vue create mode 100644 app/pages/admin/projects/items/[rkey].vue create mode 100644 app/pages/admin/projects/items/new.vue create mode 100644 lexicons/community/lexicon/app/defs.json create mode 100644 lexicons/dev/roe/project.json create mode 100644 lexicons/dev/roe/projectCategory.json delete mode 100644 modules/projects.ts create mode 100644 scripts/migrate-projects-to-atproto.ts create mode 100644 server/api/admin/project-categories/[rkey].delete.ts create mode 100644 server/api/admin/project-categories/[rkey].get.ts create mode 100644 server/api/admin/project-categories/[rkey].put.ts create mode 100644 server/api/admin/project-categories/index.get.ts create mode 100644 server/api/admin/project-categories/index.post.ts create mode 100644 server/api/admin/projects/[rkey].delete.ts create mode 100644 server/api/admin/projects/[rkey].get.ts create mode 100644 server/api/admin/projects/[rkey].put.ts create mode 100644 server/api/admin/projects/index.get.ts create mode 100644 server/api/admin/projects/index.post.ts create mode 100644 server/api/projects.get.ts create mode 100644 server/utils/cms/projects.ts create mode 100644 shared/cms/projects.ts create mode 100644 shared/lex/community.ts create mode 100644 shared/lex/community/lexicon.ts create mode 100644 shared/lex/community/lexicon/app.ts create mode 100644 shared/lex/community/lexicon/app/defs.defs.ts create mode 100644 shared/lex/community/lexicon/app/defs.ts create mode 100644 shared/lex/dev/roe/project.defs.ts create mode 100644 shared/lex/dev/roe/project.ts create mode 100644 shared/lex/dev/roe/projectCategory.defs.ts create mode 100644 shared/lex/dev/roe/projectCategory.ts create mode 100644 shared/project-icons.ts diff --git a/.gitignore b/.gitignore index 0dc76385..66434651 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,6 @@ credentials.json downloads/ .env*.local + +# one-shot projects migration manifest +scripts/.projects-migration-state.json diff --git a/app/components/TheProjects.server.vue b/app/components/TheProjects.server.vue index de890edd..7d5f18a2 100644 --- a/app/components/TheProjects.server.vue +++ b/app/components/TheProjects.server.vue @@ -1,58 +1,23 @@