Compare commits
2 Commits
alpha
...
6274e4936d
| Author | SHA1 | Date | |
|---|---|---|---|
|
6274e4936d
|
|||
|
e1259688a4
|
8
.claude/commands/handoff.md
Normal file
8
.claude/commands/handoff.md
Normal file
@@ -0,0 +1,8 @@
|
||||
Write a session handoff file for the current session.
|
||||
|
||||
Steps:
|
||||
1. Read `templates/claude-templates.md` and find the Session Handoff template (Template 4). Use the Light Handoff if this is a small project (under 5 sessions), Full Handoff otherwise.
|
||||
2. Fill in every field based on what was accomplished in this session. Be specific — include exact file paths for every output, exact numbers discovered, and conditional logic established.
|
||||
3. Write the handoff to `./docs/summaries/handoff-[today's date]-[topic].md`.
|
||||
4. If a previous handoff file exists in `./docs/summaries/`, move it to `./docs/archive/handoffs/`.
|
||||
5. Tell me the file path of the new handoff and summarize what it contains.
|
||||
13
.claude/commands/process-doc.md
Normal file
13
.claude/commands/process-doc.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Process an input document into a structured source summary.
|
||||
|
||||
Steps:
|
||||
1. Read `templates/claude-templates.md` and find the Source Document Summary template (Template 1). Use the Light Source Summary if this is a small project (under 5 sessions), Full Source Summary otherwise.
|
||||
2. Read the document at: $ARGUMENTS
|
||||
3. Extract all information into the template format. Pay special attention to:
|
||||
- EXACT numbers — do not round or paraphrase
|
||||
- Requirements in IF/THEN/BUT/EXCEPT format
|
||||
- Decisions with rationale and rejected alternatives
|
||||
- Open questions marked as OPEN, ASSUMED, or MISSING
|
||||
4. Write the summary to `./docs/summaries/source-[filename].md`.
|
||||
5. Move the original document to `./docs/archive/`.
|
||||
6. Tell me: what was extracted, what's unclear, and what needs follow-up.
|
||||
13
.claude/commands/status.md
Normal file
13
.claude/commands/status.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Report on the current project state.
|
||||
|
||||
Steps:
|
||||
1. Read `./docs/summaries/00-project-brief.md` for project context.
|
||||
2. Find and read the latest `handoff-*.md` file in `./docs/summaries/` for current state.
|
||||
3. List all files in `./docs/summaries/` to understand what's been processed.
|
||||
4. Report:
|
||||
- **Project:** name and type from the project brief
|
||||
- **Current phase:** based on the project phase tracker
|
||||
- **Last session:** what was accomplished (from the latest handoff)
|
||||
- **Next steps:** what the next session should do (from the latest handoff)
|
||||
- **Open questions:** anything unresolved
|
||||
- **Summary file count:** how many files in docs/summaries/ (warn if approaching 15)
|
||||
@@ -3,13 +3,10 @@ run-name: ${{ gitea.actor }} is building a BAB App artifact 🚀
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- alpha
|
||||
- devel
|
||||
|
||||
jobs:
|
||||
build:
|
||||
env:
|
||||
RUNNER_TOOL_CACHE: /toolcache
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -32,18 +29,23 @@ jobs:
|
||||
- name: Show env file
|
||||
run: |
|
||||
/bin/cat .env.local
|
||||
- name: Build and Release
|
||||
id: build
|
||||
- name: Build Project
|
||||
run: quasar build -m pwa
|
||||
- name: Get Version Number
|
||||
id: get_version
|
||||
run: echo "::set-output name=VERSION::$(node -p "require('./package.json').version")"
|
||||
- name: Tarfile
|
||||
run: |
|
||||
npx semantic-release
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.GT_TOKEN }}
|
||||
GITEA_URL: ${{ vars.GT_URL }}
|
||||
cd dist/pwa
|
||||
tar czf ../../build-${{ steps.get_version.outputs.VERSION }}.tar.gz .
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: build-artifact-${{ steps.get_version.outputs.VERSION }}.${{ gitea.run_number }}
|
||||
path: build-${{ steps.get_version.outputs.VERSION }}.tar.gz
|
||||
- name: Trigger Ansible Deploy Playbook
|
||||
uses: https://github.com/distributhor/workflow-webhook@v3
|
||||
with:
|
||||
webhook_url: ${{ vars.WEBHOOK_URL }}
|
||||
webhook_auth_type: "bearer"
|
||||
webhook_auth: "Token:${{ secrets.WEBHOOK_SECRET }}"
|
||||
verbose: true
|
||||
data: '{ "artifact_url": "${{ gitea.server_url }}/${{ gitea.repository }}/releases/download/v${{ steps.build.outputs.VERSION }}/release-${{ steps.build.outputs.VERSION }}.tar.gz" }'
|
||||
data: '{ "artifact_url": "${{ gitea.server_url }}/${{ gitea.repository }}/actions/runs/${{ gitea.run_id}}/artifacts/build-artifact-${{ steps.get_version.outputs.VERSION }}.${{ gitea.run_number }}" }'
|
||||
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -35,9 +35,3 @@ yarn-error.log*
|
||||
|
||||
# local .env files
|
||||
.env*
|
||||
|
||||
# version file
|
||||
src/version.js
|
||||
VERSION
|
||||
release-*.gz
|
||||
CHANGELOG.md
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"branches": [
|
||||
"main",
|
||||
"next",
|
||||
{ "name": "beta", "prerelease": true },
|
||||
{ "name": "alpha", "prerelease": true }
|
||||
],
|
||||
"plugins": [
|
||||
"@semantic-release/commit-analyzer",
|
||||
"@semantic-release/release-notes-generator",
|
||||
"@semantic-release/changelog",
|
||||
[
|
||||
"@semantic-release/exec",
|
||||
{
|
||||
"prepareCmd": "npm run generate-version '${nextRelease.version}' && quasar build -m pwa",
|
||||
"publishCmd": "tar -czvf release-${nextRelease.version}.tar.gz -C dist/pwa . && echo '::set-output name=VERSION::${nextRelease.version}'"
|
||||
}
|
||||
],
|
||||
[
|
||||
"@saithodev/semantic-release-gitea",
|
||||
{
|
||||
"assets": ["release-${nextRelease.version}.tar.gz"]
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
51
CLAUDE.md
Normal file
51
CLAUDE.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# CLAUDE.md
|
||||
|
||||
## Session Start
|
||||
|
||||
Read the latest handoff in docs/summaries/ if one exists. Load only the files that handoff references — not all summaries. If no handoff exists, ask: what is the project, what type of work, what is the target deliverable.
|
||||
|
||||
Before starting work, state: what you understand the project state to be, what you plan to do this session, and any open questions.
|
||||
|
||||
## Identity
|
||||
|
||||
You work with Patrick, a Solutions Architect, on the OYS Borrow a Boat (bab-app) project — a Quasar/Vue 3 app for managing a Borrow a Boat program for a Yacht Club. Backend is Appwrite.
|
||||
|
||||
## Project Overview
|
||||
|
||||
- **App**: OYS Borrow a Boat (oys_bab)
|
||||
- **Stack**: Quasar (Vue 3), TypeScript, Appwrite (BaaS)
|
||||
- **Purpose**: Manage a Borrow a Boat program for a Yacht Club
|
||||
- **Docs**: docs/planning/ contains personas, user/role/permission model, and time-based logic
|
||||
|
||||
## Rules
|
||||
|
||||
1. Do not mix unrelated project contexts in one session.
|
||||
2. Write state to disk, not conversation. After completing meaningful work, write a summary to docs/summaries/ using templates from templates/claude-templates.md. Include: decisions with rationale, exact numbers, file paths, open items.
|
||||
3. Before compaction or session end, write to disk: every number, every decision with rationale, every open question, every file path, exact next action.
|
||||
4. When switching work types (research → writing → review), write a handoff to docs/summaries/handoff-[date]-[topic].md and suggest a new session.
|
||||
5. Do not silently resolve open questions. Mark them OPEN or ASSUMED.
|
||||
6. Do not bulk-read documents. Process one at a time: read, summarize to disk, release from context before reading next. For the detailed protocol, read docs/context/processing-protocol.md.
|
||||
7. Sub-agent returns must be structured, not free-form prose. Use output contracts from templates/claude-templates.md.
|
||||
|
||||
## Where Things Live
|
||||
|
||||
- templates/claude-templates.md — summary, handoff, decision, analysis, task, output contract templates (read on demand)
|
||||
- docs/summaries/ — active session state (latest handoff + project brief + decision records + source summaries)
|
||||
- docs/context/ — reusable domain knowledge, loaded only when relevant to the current task
|
||||
- processing-protocol.md — full document processing steps
|
||||
- archive-rules.md — summary lifecycle and file archival rules
|
||||
- subagent-rules.md — rules for structured sub-agent outputs
|
||||
- docs/planning/ — original planning documents (personas, roles/permissions, time logic)
|
||||
- docs/archive/ — processed raw files. Do not read unless explicitly told.
|
||||
- output/deliverables/ — final outputs
|
||||
- src/ — Quasar/Vue app source
|
||||
- src-pwa/ — PWA config
|
||||
- appwrite.json — Appwrite project config
|
||||
|
||||
## Error Recovery
|
||||
|
||||
If context degrades or auto-compact fires unexpectedly: write current state to docs/summaries/recovery-[date].md, tell the user what may have been lost, suggest a fresh session.
|
||||
|
||||
## Before Delivering Output
|
||||
|
||||
Verify: exact numbers preserved, open questions marked OPEN, output matches what was requested (not assumed), claims backed by specific data, output consistent with stored decisions in docs/context/, summary written to disk for this session's work.
|
||||
16
docs/context/archive-rules.md
Normal file
16
docs/context/archive-rules.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# Archive Rules
|
||||
|
||||
## Raw File Archival
|
||||
|
||||
After creating a Source Document Summary for any raw file:
|
||||
1. Move the raw file to `docs/archive/`
|
||||
2. Record the move in the source summary's header: `Archived From: [original path]`
|
||||
3. Do not read from `docs/archive/` unless the user explicitly says "go back to the original [filename]"
|
||||
|
||||
## Summary Lifecycle Rules
|
||||
|
||||
1. **Session handoffs expire**: After a new handoff is written, the previous handoff moves to `docs/archive/handoffs/`. Only the latest handoff stays in `docs/summaries/`.
|
||||
2. **Decision records persist**: Decision records (DR-*) stay in `docs/summaries/` permanently — they are institutional memory.
|
||||
3. **Source summaries persist**: Source document summaries stay until the project ends — they replace raw documents.
|
||||
4. **Analysis summaries**: Keep only the latest version. If re-run, the new one replaces the old (archive the old one).
|
||||
5. **Maximum active summaries**: If `docs/summaries/` exceeds 15 files, consolidate older source summaries into a single `project-digest.md` and archive the originals.
|
||||
23
docs/context/processing-protocol.md
Normal file
23
docs/context/processing-protocol.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Document Processing Protocol
|
||||
|
||||
Use this whenever you need to process multiple documents or large files.
|
||||
|
||||
## For 1-3 Short Documents (< 2K words each)
|
||||
|
||||
Read sequentially. After each document, write a Source Document Summary (Template 1 from `templates/claude-templates.md`) to disk. Then proceed with work using summaries only.
|
||||
|
||||
## For 4+ Documents OR Any Document > 2K Words
|
||||
|
||||
**Step 1:** List all documents with file sizes. Present to user for prioritization.
|
||||
|
||||
**Step 2:** Process each document individually:
|
||||
- Read one document
|
||||
- Extract into Source Document Summary format
|
||||
- Write to `./docs/summaries/source-[filename].md`
|
||||
- Release the document from active consideration before reading the next
|
||||
|
||||
**Step 3:** After all documents are processed, read only the summaries to form your working context.
|
||||
|
||||
**Step 4:** Cross-reference summaries for contradictions or dependencies. Note these explicitly.
|
||||
|
||||
**Step 5:** Proceed with the actual task using summaries as your reference.
|
||||
18
docs/context/subagent-rules.md
Normal file
18
docs/context/subagent-rules.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Subagent Deployment Rules
|
||||
|
||||
## When to Use Subagent vs. Main Agent
|
||||
|
||||
| Situation | Approach | Why |
|
||||
|-----------|----------|-----|
|
||||
| Reading/analyzing documents | Subagent | Keeps source content out of main context |
|
||||
| Research and competitive analysis | Subagent | Heavy reading, return summary only |
|
||||
| Writing deliverables | Main agent | Needs full decision-making context |
|
||||
| Schema/architecture design | Main agent | Needs holistic project understanding |
|
||||
| Code generation | Subagent | Isolated implementation, return result |
|
||||
| Review and QA | Subagent | Fresh perspective, no bias from writing |
|
||||
|
||||
## Output Requirements
|
||||
|
||||
Subagent output must conform to the Output Contracts in `templates/claude-templates.md`. No free-form prose returns.
|
||||
|
||||
Optimal subagent return size: 1,000-2,000 tokens of structured summary. Longer returns consume main agent context without proportional benefit.
|
||||
@@ -1,22 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
try {
|
||||
const version = process.argv[2];
|
||||
|
||||
if (!version) throw Error('Must pass version on command line');
|
||||
|
||||
// Create version content
|
||||
const versionContent = `export const APP_VERSION = '${version}';\n`;
|
||||
const versionTxtFilePath = path.resolve(__dirname, './VERSION');
|
||||
const versionFilePath = path.resolve(__dirname, 'src/version.js');
|
||||
|
||||
// Write version to TXT file
|
||||
fs.writeFileSync(versionTxtFilePath, version, 'utf8');
|
||||
// Write version to js file
|
||||
fs.writeFileSync(versionFilePath, versionContent, 'utf8');
|
||||
console.log(`Version file generated with version: ${version}`);
|
||||
} catch (error) {
|
||||
console.error('Error generating version file:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
@@ -1,17 +1,16 @@
|
||||
{
|
||||
"name": "oys_bab",
|
||||
"version": "0.0.0",
|
||||
"version": "0.6.2",
|
||||
"description": "Manage a Borrow a Boat program for a Yacht Club",
|
||||
"productName": "OYS Borrow a Boat",
|
||||
"author": "Patrick Toal <ptoal@takeflight.ca>",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"generate-version": "node generate-version.js",
|
||||
"lint": "eslint --ext .js,.ts,.vue ./",
|
||||
"format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"dev": "npm run generate-version && quasar dev -m pwa",
|
||||
"build": "npm run generate-version && quasar build -m pwa"
|
||||
"dev": "quasar dev",
|
||||
"build": "quasar build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quasar/extras": "^1.16.11",
|
||||
@@ -27,9 +26,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@quasar/app-vite": "^1.9.1",
|
||||
"@saithodev/semantic-release-gitea": "^2.1.0",
|
||||
"@semantic-release/changelog": "^6.0.3",
|
||||
"@semantic-release/exec": "^6.0.3",
|
||||
"@semantic-release/github": "^10.0.6",
|
||||
"@semantic-release/npm": "^12.0.1",
|
||||
"@types/node": "^12.20.21",
|
||||
|
||||
@@ -9,8 +9,10 @@
|
||||
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js
|
||||
|
||||
const { configure } = require('quasar/wrappers');
|
||||
const packageJson = require('./package.json');
|
||||
const gitCommitInfo = require('git-commit-info');
|
||||
|
||||
module.exports = configure(function () {
|
||||
module.exports = configure(function ({ dev }) {
|
||||
return {
|
||||
eslint: {
|
||||
// fix: true,
|
||||
@@ -48,6 +50,11 @@ module.exports = configure(function () {
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
|
||||
build: {
|
||||
env: {
|
||||
VUE_APP_VERSION: dev
|
||||
? 'dev-' + gitCommitInfo().shortHash
|
||||
: packageJson.version,
|
||||
},
|
||||
target: {
|
||||
browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
|
||||
node: 'node16',
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<q-toolbar-title>{{ pageTitle }}</q-toolbar-title>
|
||||
<q-space />
|
||||
<div>v{{ APP_VERSION }}</div>
|
||||
<div>v{{ VERSION }}</div>
|
||||
</q-toolbar>
|
||||
</q-header>
|
||||
<LeftDrawer
|
||||
@@ -22,7 +22,8 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import LeftDrawer from 'components/LeftDrawer.vue';
|
||||
import { APP_VERSION } from 'src/version';
|
||||
|
||||
const VERSION = process.env.VUE_APP_VERSION;
|
||||
|
||||
const leftDrawerOpen = ref(false);
|
||||
function toggleLeftDrawer() {
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
<template>
|
||||
<div
|
||||
v-if="boats"
|
||||
class="row">
|
||||
<div v-if="boats">
|
||||
<q-card
|
||||
v-for="boat in boats"
|
||||
:key="boat.id"
|
||||
class="q-ma-sm col-xs-12 col-sm-6 col-xl-3">
|
||||
class="q-ma-sm">
|
||||
<q-card-section>
|
||||
<q-img
|
||||
:src="boat.imgSrc"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<q-layout view="hHh Lpr fFf">
|
||||
<ToolbarComponent :pageTitle="route.meta.title as string" />
|
||||
<q-page-container>
|
||||
<router-view />
|
||||
</q-page-container>
|
||||
@@ -11,9 +12,12 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useQuasar } from 'quasar';
|
||||
import { useRoute } from 'vue-router';
|
||||
import BottomNavComponent from 'src/components/BottomNavComponent.vue';
|
||||
import ToolbarComponent from 'src/components/ToolbarComponent.vue';
|
||||
|
||||
const q = useQuasar();
|
||||
const route = useRoute();
|
||||
// q.fullscreen.request();
|
||||
q.addressbarColor.set('#14539a');
|
||||
</script>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<template>
|
||||
<ToolbarComponent />
|
||||
<q-page class="row justify-center">
|
||||
<q-img alt="OYS Logo" src="~assets/oysqn_logo.png" fit="scale-down" />
|
||||
<q-list class="full-width mobile-only">
|
||||
@@ -24,5 +23,4 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { enabledLinks } from 'src/router/navlinks.js';
|
||||
import ToolbarComponent from 'components/ToolbarComponent.vue';
|
||||
</script>
|
||||
|
||||
@@ -83,14 +83,13 @@ import { Dialog, Notify } from 'quasar';
|
||||
import { useAuthStore } from 'src/stores/auth';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { AppwriteException } from 'appwrite';
|
||||
import { APP_VERSION } from 'src/version.js';
|
||||
|
||||
const email = ref('');
|
||||
const token = ref('');
|
||||
const userId = ref();
|
||||
const router = useRouter();
|
||||
|
||||
console.log('version:' + APP_VERSION);
|
||||
console.log('version:' + process.env.VUE_APP_VERSION);
|
||||
|
||||
const doTokenLogin = async () => {
|
||||
const authStore = useAuthStore();
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<template>
|
||||
<toolbar-component pageTitle="Member Profile" />
|
||||
<q-page
|
||||
padding
|
||||
class="row">
|
||||
@@ -76,7 +75,6 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import ToolbarComponent from 'src/components/ToolbarComponent.vue';
|
||||
import { useAuthStore } from 'src/stores/auth';
|
||||
import { ref } from 'vue';
|
||||
|
||||
|
||||
@@ -61,13 +61,12 @@ import { useAuthStore } from 'src/stores/auth';
|
||||
import NewPasswordComponent from 'src/components/NewPasswordComponent.vue';
|
||||
import { Dialog } from 'quasar';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { APP_VERSION } from 'src/version.js';
|
||||
|
||||
const email = ref('');
|
||||
const password = ref('');
|
||||
const router = useRouter();
|
||||
|
||||
console.log('version:' + APP_VERSION);
|
||||
console.log('version:' + process.env.VUE_APP_VERSION);
|
||||
|
||||
const doRegister = async () => {
|
||||
if (email.value && password.value) {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<BoatReservationComponent v-model="newReservation" />
|
||||
<q-page>
|
||||
<BoatReservationComponent v-model="newReservation" />
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<template>
|
||||
<q-page>
|
||||
<q-tabs
|
||||
v-model="tab"
|
||||
inline-label
|
||||
@@ -57,6 +58,7 @@
|
||||
</div>
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</q-page>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { useReservationStore } from 'src/stores/reservation';
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<div class="fit row">
|
||||
<q-page class="fit row wrap justify-start items-start content-start">
|
||||
<div class="q-pa-md">
|
||||
<div class="scheduler col-12">
|
||||
<div
|
||||
class="scheduler"
|
||||
style="max-width: 1200px">
|
||||
<NavigationBar
|
||||
@next="onNext"
|
||||
@today="onToday"
|
||||
@@ -126,7 +128,6 @@
|
||||
:model-value="template" />
|
||||
</q-list>
|
||||
</div>
|
||||
</div>
|
||||
<q-dialog v-model="alert">
|
||||
<q-card>
|
||||
<q-card-section>
|
||||
@@ -151,6 +152,7 @@
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<BoatReservationComponent v-model="reservation" />
|
||||
<q-page>
|
||||
<BoatReservationComponent v-model="reservation" />
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<template>
|
||||
<toolbar-component pageTitle="Schedule" />
|
||||
<router-view />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import ToolbarComponent from 'src/components/ToolbarComponent.vue';
|
||||
</script>
|
||||
|
||||
@@ -61,6 +61,15 @@ export const links = <Link[]>[
|
||||
front_links: false,
|
||||
enabled: true,
|
||||
},
|
||||
{
|
||||
name: 'Manage',
|
||||
to: '/schedule/manage',
|
||||
icon: 'edit_calendar',
|
||||
front_links: false,
|
||||
enabled: true,
|
||||
color: 'accent',
|
||||
requiredRoles: ['Schedule Admins'],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -91,24 +100,6 @@ export const links = <Link[]>[
|
||||
front_links: true,
|
||||
enabled: false,
|
||||
},
|
||||
{
|
||||
name: 'Manage',
|
||||
icon: 'tune',
|
||||
enabled: true,
|
||||
requiredRoles: ['Schedule Admins'],
|
||||
color: 'negative',
|
||||
sublinks: [
|
||||
{
|
||||
name: 'Schedule',
|
||||
to: '/schedule/manage',
|
||||
icon: 'edit_calendar',
|
||||
front_links: false,
|
||||
enabled: true,
|
||||
color: 'accent',
|
||||
requiredRoles: ['Schedule Admins'],
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const authStore = useAuthStore();
|
||||
|
||||
@@ -13,16 +13,19 @@ const routes: RouteRecordRaw[] = [
|
||||
// component: () => import('pages/IndexPage.vue'),
|
||||
component: () => import('src/pages/IndexPage.vue'),
|
||||
name: 'index',
|
||||
meta: { title: 'OYS Borrow a Boat' },
|
||||
},
|
||||
{
|
||||
path: '/boat',
|
||||
component: () => import('src/pages/BoatPage.vue'),
|
||||
name: 'boat',
|
||||
meta: { title: 'Boats' },
|
||||
},
|
||||
{
|
||||
path: '/schedule',
|
||||
component: () => import('pages/schedule/SchedulePageView.vue'),
|
||||
name: 'schedule',
|
||||
meta: { title: 'Schedule' },
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
@@ -64,10 +67,12 @@ const routes: RouteRecordRaw[] = [
|
||||
path: '/certification',
|
||||
component: () => import('src/pages/CertificationPage.vue'),
|
||||
name: 'certification',
|
||||
meta: { title: 'Certifications' },
|
||||
},
|
||||
{
|
||||
path: '/task',
|
||||
name: 'task',
|
||||
meta: { title: 'Tasks' },
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
@@ -85,16 +90,19 @@ const routes: RouteRecordRaw[] = [
|
||||
path: '/checklist',
|
||||
component: () => import('pages/ChecklistPage.vue'),
|
||||
name: 'checklist',
|
||||
meta: { title: 'Checklist' },
|
||||
},
|
||||
{
|
||||
path: '/profile',
|
||||
component: () => import('src/pages/ProfilePage.vue'),
|
||||
name: 'profile',
|
||||
meta: { title: 'Member Profile' },
|
||||
},
|
||||
{
|
||||
path: '/reference',
|
||||
component: () => import('src/pages/reference/ReferencePage.vue'),
|
||||
name: 'reference',
|
||||
meta: { title: 'Reference' },
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
@@ -103,7 +111,7 @@ const routes: RouteRecordRaw[] = [
|
||||
name: 'reference-index',
|
||||
},
|
||||
{
|
||||
path: '/reference/:id/view',
|
||||
path: 'reference/:id/view',
|
||||
component: () =>
|
||||
import('src/pages/reference/ReferenceItemPage.vue'),
|
||||
},
|
||||
@@ -117,12 +125,12 @@ const routes: RouteRecordRaw[] = [
|
||||
meta: { requiredRoles: ['admin'] },
|
||||
children: [
|
||||
{
|
||||
path: '/user',
|
||||
path: 'user',
|
||||
component: () => import('pages/admin/UserAdminPage.vue'),
|
||||
name: 'useradmin',
|
||||
},
|
||||
{
|
||||
path: '/boat',
|
||||
path: 'boat',
|
||||
component: () => import('pages/admin/BoatAdminPage.vue'),
|
||||
name: 'boatadmin',
|
||||
},
|
||||
@@ -144,14 +152,6 @@ const routes: RouteRecordRaw[] = [
|
||||
publicRoute: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/login',
|
||||
component: () => import('pages/LoginPage.vue'),
|
||||
name: 'login',
|
||||
meta: {
|
||||
publicRoute: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/terms-of-service',
|
||||
component: () => import('pages/TermsOfServicePage.vue'),
|
||||
|
||||
@@ -100,7 +100,7 @@ export const useAuthStore = defineStore('auth', () => {
|
||||
}
|
||||
|
||||
function logout() {
|
||||
return account.deleteSession('current').then((currentUser.value = null));
|
||||
return account.deleteSession('current').then(() => { currentUser.value = null; });
|
||||
}
|
||||
|
||||
async function updateName(name: string) {
|
||||
|
||||
@@ -113,7 +113,7 @@ export const useReferenceStore = defineStore('reference', {
|
||||
|
||||
getters: {
|
||||
getCategory(state) {
|
||||
(category: string) => {
|
||||
return (category: string) => {
|
||||
return state.allItems.filter((c) => c.category === category);
|
||||
};
|
||||
},
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
export const APP_VERSION = '0.0.0';
|
||||
490
templates/claude-templates.md
Normal file
490
templates/claude-templates.md
Normal file
@@ -0,0 +1,490 @@
|
||||
# Claude Templates — On-Demand Reference
|
||||
|
||||
> **Do NOT read this file at session start.** Read it only when you need to write a summary, handoff, decision record, or subagent output. This file is referenced from CLAUDE.md.
|
||||
|
||||
---
|
||||
|
||||
## Template 1: Source Document Summary
|
||||
|
||||
**Use when:** Processing any input document (client brief, research report, requirements doc, existing proposal)
|
||||
|
||||
**Write to:** `./docs/summaries/source-[filename].md`
|
||||
|
||||
```markdown
|
||||
# Source Summary: [Original Document Name]
|
||||
**Processed:** [YYYY-MM-DD]
|
||||
**Source Path:** [exact file path]
|
||||
**Archived From:** [original path, if moved to docs/archive/]
|
||||
**Document Type:** [brief / requirements / research / proposal / transcript / other]
|
||||
**Confidence:** [high = I understood everything / medium = some interpretation needed / low = significant gaps]
|
||||
|
||||
## Exact Numbers & Metrics
|
||||
<!-- List EVERY specific number, dollar amount, percentage, date, count, measurement.
|
||||
Do NOT round. Do NOT paraphrase. Copy exactly as stated in source. -->
|
||||
- [metric]: [exact value] (page/section reference if available)
|
||||
- [metric]: [exact value]
|
||||
|
||||
## Key Facts (Confirmed)
|
||||
<!-- Only include facts explicitly stated in the document. Tag source. -->
|
||||
- [fact] — stated in [section/page]
|
||||
- [fact] — stated in [section/page]
|
||||
|
||||
## Requirements & Constraints
|
||||
<!-- Use IF/THEN/BUT/EXCEPT format to preserve conditional logic -->
|
||||
- REQUIREMENT: [what is needed]
|
||||
- CONDITION: [when/if this applies]
|
||||
- CONSTRAINT: [limitation or exception]
|
||||
- PRIORITY: [must-have / should-have / nice-to-have / stated by whom]
|
||||
|
||||
## Decisions Referenced
|
||||
<!-- Any decisions mentioned in the document -->
|
||||
- DECISION: [what was decided]
|
||||
- RATIONALE: [why, as stated in document]
|
||||
- ALTERNATIVES MENTIONED: [what else was considered]
|
||||
- DECIDED BY: [who, if stated]
|
||||
|
||||
## Relationships to Other Documents
|
||||
<!-- How this document connects to other known project documents -->
|
||||
- SUPPORTS: [other document/decision it reinforces]
|
||||
- CONTRADICTS: [other document/decision it conflicts with]
|
||||
- DEPENDS ON: [other document/decision it requires]
|
||||
- UPDATES: [other document/decision it supersedes]
|
||||
|
||||
## Open Questions & Ambiguities
|
||||
<!-- Things that are NOT resolved in this document -->
|
||||
- UNCLEAR: [what is ambiguous] — needs clarification from [whom]
|
||||
- ASSUMED: [interpretation made] — verify with [whom]
|
||||
- MISSING: [information referenced but not provided]
|
||||
|
||||
## Verbatim Quotes Worth Preserving
|
||||
<!-- 2-5 direct quotes that capture stakeholder language, priorities, or constraints
|
||||
These are critical for proposals — use the client's own words back to them -->
|
||||
- "[exact quote]" — [speaker/author], [context]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Template 2: Analysis / Research Summary
|
||||
|
||||
**Use when:** Completing competitive analysis, market research, technical evaluation
|
||||
|
||||
**Write to:** `./docs/summaries/analysis-[topic].md`
|
||||
|
||||
```markdown
|
||||
# Analysis Summary: [Topic]
|
||||
**Completed:** [YYYY-MM-DD]
|
||||
**Analysis Type:** [competitive / market / technical / financial / feasibility]
|
||||
**Sources Used:** [list source paths or URLs]
|
||||
**Confidence:** [high / medium / low — and WHY this confidence level]
|
||||
|
||||
## Core Finding (One Sentence)
|
||||
[Single sentence: the most important conclusion]
|
||||
|
||||
## Evidence Base
|
||||
<!-- Specific data points supporting the finding. Exact numbers only. -->
|
||||
| Data Point | Value | Source | Date of Data |
|
||||
|-----------|-------|--------|-------------|
|
||||
| [metric] | [exact value] | [source] | [date] |
|
||||
|
||||
## Detailed Findings
|
||||
### Finding 1: [Name]
|
||||
- WHAT: [the finding]
|
||||
- SO WHAT: [why it matters for this project]
|
||||
- EVIDENCE: [specific supporting data]
|
||||
- CONFIDENCE: [high/medium/low]
|
||||
|
||||
### Finding 2: [Name]
|
||||
[same structure]
|
||||
|
||||
## Conditional Conclusions
|
||||
<!-- Use IF/THEN format -->
|
||||
- IF [condition], THEN [conclusion], BECAUSE [evidence]
|
||||
- IF [alternative condition], THEN [different conclusion]
|
||||
|
||||
## What This Analysis Does NOT Cover
|
||||
<!-- Explicit scope boundaries to prevent future sessions from over-interpreting -->
|
||||
- [topic not addressed and why]
|
||||
- [data not available]
|
||||
|
||||
## Recommended Next Steps
|
||||
1. [action] — priority [high/medium/low], depends on [what]
|
||||
2. [action]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Template 3: Decision Record
|
||||
|
||||
**Use when:** Any significant decision is made during a session
|
||||
|
||||
**Write to:** `./docs/summaries/decision-[number]-[topic].md`
|
||||
|
||||
```markdown
|
||||
# Decision Record: [Short Title]
|
||||
**Decision ID:** DR-[sequential number]
|
||||
**Date:** [YYYY-MM-DD]
|
||||
**Status:** CONFIRMED / PROVISIONAL / REQUIRES_VALIDATION
|
||||
|
||||
## Decision
|
||||
[One clear sentence: what was decided]
|
||||
|
||||
## Context
|
||||
[2-3 sentences: what situation prompted this decision]
|
||||
|
||||
## Rationale
|
||||
- CHOSE [option] BECAUSE: [specific reasons with data]
|
||||
- REJECTED [alternative 1] BECAUSE: [specific reasons]
|
||||
- REJECTED [alternative 2] BECAUSE: [specific reasons]
|
||||
|
||||
## Quantified Impact
|
||||
- [metric affected]: [expected change with numbers]
|
||||
- [cost/time/resource implication]: [specific figures]
|
||||
|
||||
## Conditions & Constraints
|
||||
- VALID IF: [conditions under which this decision holds]
|
||||
- REVISIT IF: [triggers that should cause reconsideration]
|
||||
- DEPENDS ON: [upstream decisions or facts this relies on]
|
||||
|
||||
## Stakeholder Input
|
||||
- [name/role]: [their stated position, if known]
|
||||
|
||||
## Downstream Effects
|
||||
- AFFECTS: [what other decisions, documents, or deliverables this impacts]
|
||||
- REQUIRES UPDATE TO: [specific files or deliverables that need revision]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Template 4: Session Handoff
|
||||
|
||||
**Use when:** A session is ending (context limit approaching OR phase complete)
|
||||
|
||||
**Write to:** `./docs/summaries/handoff-[YYYY-MM-DD]-[topic].md`
|
||||
|
||||
**LIFECYCLE**: After writing a new handoff, move the PREVIOUS handoff to `docs/archive/handoffs/`.
|
||||
|
||||
```markdown
|
||||
# Session Handoff: [Topic]
|
||||
**Date:** [YYYY-MM-DD]
|
||||
**Session Duration:** [approximate]
|
||||
**Session Focus:** [one sentence]
|
||||
**Context Usage at Handoff:** [estimated percentage if known]
|
||||
|
||||
## What Was Accomplished
|
||||
<!-- Be specific. Include file paths for every output. -->
|
||||
1. [task completed] → output at `[file path]`
|
||||
2. [task completed] → output at `[file path]`
|
||||
|
||||
## Exact State of Work in Progress
|
||||
<!-- If anything is mid-stream, describe exactly where it stopped -->
|
||||
- [work item]: completed through [specific point], next step is [specific action]
|
||||
- [work item]: blocked on [specific issue]
|
||||
|
||||
## Decisions Made This Session
|
||||
<!-- Reference decision records if created, otherwise summarize here -->
|
||||
- DR-[number]: [decision] (see `./docs/summaries/decision-[file]`)
|
||||
- [Ad-hoc decision]: [what] BECAUSE [why] — STATUS: [confirmed/provisional]
|
||||
|
||||
## Key Numbers Generated or Discovered This Session
|
||||
<!-- Every metric, estimate, or figure produced. Exact values. -->
|
||||
- [metric]: [value] — [context for where/how this was derived]
|
||||
|
||||
## Conditional Logic Established
|
||||
<!-- Any IF/THEN/BUT/EXCEPT reasoning that future sessions must respect -->
|
||||
- IF [condition] THEN [approach] BECAUSE [rationale]
|
||||
|
||||
## Files Created or Modified
|
||||
| File Path | Action | Description |
|
||||
|-----------|--------|-------------|
|
||||
| `[path]` | Created | [what it contains] |
|
||||
| `[path]` | Modified | [what changed and why] |
|
||||
|
||||
## What the NEXT Session Should Do
|
||||
<!-- Ordered, specific instructions. The next session starts by reading this. -->
|
||||
1. **First**: [specific action with file paths]
|
||||
2. **Then**: [specific action]
|
||||
3. **Then**: [specific action]
|
||||
|
||||
## Open Questions Requiring User Input
|
||||
<!-- Do NOT proceed on these without explicit user confirmation -->
|
||||
- [ ] [question] — impacts [what downstream deliverable]
|
||||
- [ ] [question]
|
||||
|
||||
## Assumptions That Need Validation
|
||||
<!-- Things treated as true this session but not confirmed -->
|
||||
- ASSUMED: [assumption] — validate by [method/person]
|
||||
|
||||
## What NOT to Re-Read
|
||||
<!-- Prevent the next session from wasting context on already-processed material -->
|
||||
- `[file path]` — already summarized in `[summary file path]`
|
||||
|
||||
## Files to Load Next Session
|
||||
<!-- Explicit index of what the next session should read. Acts as progressive disclosure index layer. -->
|
||||
- `[file path]` — needed for [reason]
|
||||
- `[file path]` — needed for [reason]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Template 5: Project Brief (Initial Setup)
|
||||
|
||||
**Use when:** Creating the 00-project-brief.md at project start
|
||||
|
||||
**Write to:** `./docs/summaries/00-project-brief.md`
|
||||
|
||||
```markdown
|
||||
# Project Brief: [Project Name]
|
||||
**Created:** [YYYY-MM-DD]
|
||||
**Last Updated:** [YYYY-MM-DD]
|
||||
|
||||
## Client
|
||||
- **Name:** [client name]
|
||||
- **Industry:** [industry]
|
||||
- **Size:** [employee count / revenue if known]
|
||||
- **Relationship:** [through AutomatonsX / Lagrange Data / direct / other]
|
||||
- **Key Contacts:** [names and roles if known]
|
||||
|
||||
## Engagement
|
||||
- **Type:** [proposal / workshop / competitive analysis / agent development / hybrid]
|
||||
- **Scope:** [one paragraph description]
|
||||
- **Target Deliverable:** [specific output expected]
|
||||
- **Timeline:** [deadline if known]
|
||||
- **Budget Context:** [if known — exact figures]
|
||||
|
||||
## Input Documents
|
||||
| Document | Path | Processed? | Summary At |
|
||||
|----------|------|-----------|------------|
|
||||
| [name] | `[path]` | Yes/No | `[summary path]` |
|
||||
|
||||
## Success Criteria
|
||||
- [criterion 1]
|
||||
- [criterion 2]
|
||||
|
||||
## Known Constraints
|
||||
- [constraint 1]
|
||||
- [constraint 2]
|
||||
|
||||
## Project Phase Tracker
|
||||
| Phase | Status | Summary File | Date |
|
||||
|-------|--------|-------------|------|
|
||||
| Discovery | Not Started / In Progress / Complete | `[path]` | |
|
||||
| Strategy | Not Started / In Progress / Complete | `[path]` | |
|
||||
| Deliverable Draft | Not Started / In Progress / Complete | `[path]` | |
|
||||
| Review & Polish | Not Started / In Progress / Complete | `[path]` | |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Template 6: Task Definition
|
||||
|
||||
**Use when:** Defining a discrete unit of work before starting execution
|
||||
|
||||
```markdown
|
||||
## Task: [name]
|
||||
**Date:** [YYYY-MM-DD]
|
||||
**Client:** [if applicable]
|
||||
**Work Type:** [proposal / workshop / analysis / content / agent development]
|
||||
|
||||
### Context Files to Load
|
||||
- `[file path]` — [why needed]
|
||||
|
||||
### Action
|
||||
[What to produce. Be specific about format, length, and scope.]
|
||||
|
||||
### Verify
|
||||
- [ ] Numbers match source data exactly
|
||||
- [ ] Open questions marked OPEN
|
||||
- [ ] Output matches what was requested, not what was assumed
|
||||
- [ ] Claims backed by specific data
|
||||
- [ ] Consistent with stored decisions in docs/context/
|
||||
|
||||
### Done When
|
||||
- [ ] Output file exists at `[specific path]`
|
||||
- [ ] Summary written to `docs/summaries/[specific file]`
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Subagent Output Contracts
|
||||
|
||||
**CRITICAL: When subagents return results to the main agent, unstructured prose causes information loss. These output contracts define the EXACT format subagents must return.**
|
||||
|
||||
### Contract for Document Analysis Subagent
|
||||
|
||||
```
|
||||
=== DOCUMENT ANALYSIS OUTPUT ===
|
||||
SOURCE: [file path]
|
||||
TYPE: [document type]
|
||||
CONFIDENCE: [high/medium/low]
|
||||
|
||||
NUMBERS:
|
||||
- [metric]: [exact value]
|
||||
[repeat for all numbers found]
|
||||
|
||||
REQUIREMENTS:
|
||||
- REQ: [requirement] | CONDITION: [if any] | PRIORITY: [level] | CONSTRAINT: [if any]
|
||||
[repeat]
|
||||
|
||||
DECISIONS_REFERENCED:
|
||||
- DEC: [what] | WHY: [rationale] | BY: [who]
|
||||
[repeat]
|
||||
|
||||
CONTRADICTIONS:
|
||||
- [this document says X] CONTRADICTS [other known fact Y]
|
||||
[repeat or NONE]
|
||||
|
||||
OPEN:
|
||||
- [unresolved item] | NEEDS: [who/what to resolve]
|
||||
[repeat or NONE]
|
||||
|
||||
QUOTES:
|
||||
- "[verbatim]" — [speaker], [context]
|
||||
[repeat, max 5]
|
||||
|
||||
=== END OUTPUT ===
|
||||
```
|
||||
|
||||
### Contract for Research/Analysis Subagent
|
||||
|
||||
```
|
||||
=== RESEARCH OUTPUT ===
|
||||
QUERY: [what was researched]
|
||||
SOURCES: [list]
|
||||
CONFIDENCE: [high/medium/low] BECAUSE [reason]
|
||||
|
||||
CORE_FINDING: [one sentence]
|
||||
|
||||
EVIDENCE:
|
||||
- [data point]: [exact value] | SOURCE: [where] | DATE: [when]
|
||||
[repeat]
|
||||
|
||||
CONCLUSIONS:
|
||||
- IF [condition] THEN [conclusion] | EVIDENCE: [reference]
|
||||
[repeat]
|
||||
|
||||
GAPS:
|
||||
- [what was not found or not covered]
|
||||
[repeat or NONE]
|
||||
|
||||
NEXT_STEPS:
|
||||
- [recommended action] | PRIORITY: [level]
|
||||
[repeat]
|
||||
|
||||
=== END OUTPUT ===
|
||||
```
|
||||
|
||||
### Contract for Review/QA Subagent
|
||||
|
||||
```
|
||||
=== REVIEW OUTPUT ===
|
||||
REVIEWED: [file path or deliverable name]
|
||||
AGAINST: [what standard — spec, requirements, style guide]
|
||||
|
||||
PASS: [yes/no/partial]
|
||||
|
||||
ISSUES:
|
||||
- SEVERITY: [critical/major/minor] | ITEM: [description] | LOCATION: [where in document] | FIX: [suggested resolution]
|
||||
[repeat]
|
||||
|
||||
MISSING:
|
||||
- [expected content/section not found] | REQUIRED_BY: [which requirement]
|
||||
[repeat or NONE]
|
||||
|
||||
INCONSISTENCIES:
|
||||
- [item A says X] BUT [item B says Y] | RESOLUTION: [suggested]
|
||||
[repeat or NONE]
|
||||
|
||||
STRENGTHS:
|
||||
- [what works well — for positive reinforcement in iteration]
|
||||
[max 3]
|
||||
|
||||
=== END OUTPUT ===
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Phase-Based Workflow Templates
|
||||
|
||||
### Template A: Enterprise Sales Deliverable
|
||||
|
||||
```
|
||||
Phase 1: Discovery & Input Processing
|
||||
├── Process all client documents → Source Document Summaries
|
||||
├── Identify gaps in information → flag as OPEN items
|
||||
├── Create Decision Records for any choices made
|
||||
├── Write: ./docs/summaries/01-discovery-complete.md (Handoff Template)
|
||||
├── → Suggest new session for Phase 2
|
||||
|
||||
Phase 2: Strategy & Positioning
|
||||
├── Read summaries only (NOT source documents)
|
||||
├── Competitive positioning analysis → Analysis Summary
|
||||
├── Value proposition development
|
||||
├── ROI framework construction with EXACT numbers
|
||||
├── Write: ./docs/summaries/02-strategy-complete.md (Handoff Template)
|
||||
├── → Suggest new session for Phase 3
|
||||
|
||||
Phase 3: Deliverable Creation
|
||||
├── Read strategy summary + project brief only
|
||||
├── Draft deliverable (proposal / deck / workshop plan)
|
||||
├── Output to: ./output/deliverables/
|
||||
├── Write: ./docs/summaries/03-deliverable-draft.md (Handoff Template)
|
||||
├── → Suggest new session for Phase 4
|
||||
|
||||
Phase 4: Review & Polish
|
||||
├── Read draft deliverable + strategy summary
|
||||
├── Quality review using Review/QA Output Contract
|
||||
├── Final edits and formatting
|
||||
├── Output final version to: ./output/deliverables/
|
||||
```
|
||||
|
||||
### Template B: Agent/Application Development
|
||||
|
||||
```
|
||||
Phase 1: Requirements → Spec
|
||||
├── Process all input documents → Source Document Summaries
|
||||
├── Generate structured specification
|
||||
├── Output: ./output/SPEC.md
|
||||
├── Write: ./docs/summaries/01-spec-complete.md (Handoff Template)
|
||||
├── → Suggest new session for Phase 2
|
||||
|
||||
Phase 2: Architecture → Schema
|
||||
├── Read SPEC.md + summaries only
|
||||
├── Design data model
|
||||
├── Define agent behaviors and workflows
|
||||
├── Output: ./output/schemas/data-model.yaml
|
||||
├── Output: ./output/schemas/agent-definitions.yaml
|
||||
├── Write: ./docs/summaries/02-architecture-complete.md (Handoff Template)
|
||||
├── → Suggest new session for Phase 3
|
||||
|
||||
Phase 3: Prompts → Integration
|
||||
├── Read schemas + spec only
|
||||
├── Write system prompts for each agent
|
||||
├── Map API integrations and data flows
|
||||
├── Output: ./output/prompts/[agent-name].md (one per agent)
|
||||
├── Output: ./output/schemas/integration-map.yaml
|
||||
├── Write: ./docs/summaries/03-prompts-complete.md (Handoff Template)
|
||||
├── → Suggest new session for Phase 4
|
||||
|
||||
Phase 4: Assembly → Package
|
||||
├── Read all output files
|
||||
├── Assemble complete application package
|
||||
├── Generate deployment/setup instructions
|
||||
├── Output: ./output/deliverables/[project]-complete-package/
|
||||
├── QA check against original spec using Review/QA Output Contract
|
||||
```
|
||||
|
||||
### Template C: Hybrid (Sales + Agent Development)
|
||||
|
||||
```
|
||||
Phase 1: Client Discovery → Summaries
|
||||
Phase 2: Solution Design → Architecture + Schema
|
||||
Phase 3a: Client-Facing Deliverable (proposal/deck)
|
||||
Phase 3b: Internal Technical Package (schemas/prompts)
|
||||
Phase 4: Review both tracks against each other for consistency
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## End of Templates
|
||||
|
||||
**Return to your task after reading the template(s) you need. Do not keep this file in active context.**
|
||||
304
yarn.lock
304
yarn.lock
@@ -1525,23 +1525,6 @@
|
||||
estree-walker "^2.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
"@saithodev/semantic-release-gitea@^2.1.0":
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@saithodev/semantic-release-gitea/-/semantic-release-gitea-2.1.0.tgz#6718fec7fc62a11c3dbaef85b82cb030e514275c"
|
||||
integrity sha512-jvr5U6/ZVADgwJ7yosymrwFF4AO+bhYMaiFNLoo/RUOJQNalrwziOmCtWH3YC/ouEd1TiPXDhfBOuXSgXvgANg==
|
||||
dependencies:
|
||||
"@semantic-release/error" "^2.2.0"
|
||||
aggregate-error "^3.0.0"
|
||||
debug "^4.0.0"
|
||||
dir-glob "^3.0.0"
|
||||
form-data "^3.0.0"
|
||||
fs-extra "^8.0.0"
|
||||
globby "^10.0.0"
|
||||
got "^10.0.1"
|
||||
lodash "^4.17.21"
|
||||
querystring "^0.2.0"
|
||||
url-join "^4.0.0"
|
||||
|
||||
"@sec-ant/readable-stream@^0.4.1":
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c"
|
||||
@@ -1571,11 +1554,6 @@
|
||||
lodash-es "^4.17.21"
|
||||
micromatch "^4.0.2"
|
||||
|
||||
"@semantic-release/error@^2.2.0":
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0"
|
||||
integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==
|
||||
|
||||
"@semantic-release/error@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-3.0.0.tgz#30a3b97bbb5844d695eb22f9d3aa40f6a92770c2"
|
||||
@@ -1586,18 +1564,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-4.0.0.tgz#692810288239637f74396976a9340fbc0aa9f6f9"
|
||||
integrity sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==
|
||||
|
||||
"@semantic-release/exec@^6.0.3":
|
||||
version "6.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@semantic-release/exec/-/exec-6.0.3.tgz#d212fdf19633bdfb553de6cb6c7f8781933224db"
|
||||
integrity sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==
|
||||
dependencies:
|
||||
"@semantic-release/error" "^3.0.0"
|
||||
aggregate-error "^3.0.0"
|
||||
debug "^4.0.0"
|
||||
execa "^5.0.0"
|
||||
lodash "^4.17.4"
|
||||
parse-json "^5.0.0"
|
||||
|
||||
"@semantic-release/github@^10.0.0", "@semantic-release/github@^10.0.6":
|
||||
version "10.0.6"
|
||||
resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-10.0.6.tgz#58cdec447a423f5be9a6a4c912cbc422307f695b"
|
||||
@@ -1701,11 +1667,6 @@
|
||||
"@sigstore/core" "^1.1.0"
|
||||
"@sigstore/protobuf-specs" "^0.3.2"
|
||||
|
||||
"@sindresorhus/is@^2.0.0":
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1"
|
||||
integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==
|
||||
|
||||
"@sindresorhus/is@^4.6.0":
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
|
||||
@@ -1731,13 +1692,6 @@
|
||||
magic-string "^0.25.0"
|
||||
string.prototype.matchall "^4.0.6"
|
||||
|
||||
"@szmarczak/http-timer@^4.0.0":
|
||||
version "4.0.6"
|
||||
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
|
||||
integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
|
||||
dependencies:
|
||||
defer-to-connect "^2.0.0"
|
||||
|
||||
"@tufjs/canonical-json@2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a"
|
||||
@@ -1759,16 +1713,6 @@
|
||||
"@types/connect" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/cacheable-request@^6.0.1":
|
||||
version "6.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183"
|
||||
integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==
|
||||
dependencies:
|
||||
"@types/http-cache-semantics" "*"
|
||||
"@types/keyv" "^3.1.4"
|
||||
"@types/node" "*"
|
||||
"@types/responselike" "^1.0.0"
|
||||
|
||||
"@types/chrome@^0.0.208":
|
||||
version "0.0.208"
|
||||
resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.208.tgz#c52992e46723c783d3fd84a8b90dd8b3e87af67f"
|
||||
@@ -1838,24 +1782,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.33.tgz#d9d611db9d9cd99ae4e458de420eeb64ad604ea8"
|
||||
integrity sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==
|
||||
|
||||
"@types/glob@^7.1.1":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
|
||||
integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
|
||||
dependencies:
|
||||
"@types/minimatch" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/har-format@*":
|
||||
version "1.2.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.15.tgz#f352493638c2f89d706438a19a9eb300b493b506"
|
||||
integrity sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==
|
||||
|
||||
"@types/http-cache-semantics@*":
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
|
||||
integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
|
||||
|
||||
"@types/http-errors@*":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f"
|
||||
@@ -1866,23 +1797,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
||||
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
||||
|
||||
"@types/keyv@^3.1.1", "@types/keyv@^3.1.4":
|
||||
version "3.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"
|
||||
integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/mime@^1":
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
|
||||
integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
|
||||
|
||||
"@types/minimatch@*":
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca"
|
||||
integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==
|
||||
|
||||
"@types/node@*":
|
||||
version "20.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18"
|
||||
@@ -1915,13 +1834,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975"
|
||||
integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==
|
||||
|
||||
"@types/responselike@^1.0.0":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50"
|
||||
integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/semver@^7.3.12", "@types/semver@^7.5.5":
|
||||
version "7.5.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
|
||||
@@ -2616,27 +2528,6 @@ cacache@^18.0.0, cacache@^18.0.3:
|
||||
tar "^6.1.11"
|
||||
unique-filename "^3.0.0"
|
||||
|
||||
cacheable-lookup@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38"
|
||||
integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==
|
||||
dependencies:
|
||||
"@types/keyv" "^3.1.1"
|
||||
keyv "^4.0.0"
|
||||
|
||||
cacheable-request@^7.0.1:
|
||||
version "7.0.4"
|
||||
resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817"
|
||||
integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==
|
||||
dependencies:
|
||||
clone-response "^1.0.2"
|
||||
get-stream "^5.1.0"
|
||||
http-cache-semantics "^4.0.0"
|
||||
keyv "^4.0.0"
|
||||
lowercase-keys "^2.0.0"
|
||||
normalize-url "^6.0.1"
|
||||
responselike "^2.0.0"
|
||||
|
||||
call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
|
||||
@@ -2827,13 +2718,6 @@ clone-deep@^4.0.1:
|
||||
kind-of "^6.0.2"
|
||||
shallow-clone "^3.0.0"
|
||||
|
||||
clone-response@^1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"
|
||||
integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
|
||||
dependencies:
|
||||
mimic-response "^1.0.0"
|
||||
|
||||
clone@^1.0.2:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
|
||||
@@ -3146,13 +3030,6 @@ debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, d
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
decompress-response@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f"
|
||||
integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==
|
||||
dependencies:
|
||||
mimic-response "^2.0.0"
|
||||
|
||||
deep-extend@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
|
||||
@@ -3175,11 +3052,6 @@ defaults@^1.0.3:
|
||||
dependencies:
|
||||
clone "^1.0.2"
|
||||
|
||||
defer-to-connect@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
|
||||
integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
|
||||
|
||||
define-data-property@^1.0.1, define-data-property@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
|
||||
@@ -3223,7 +3095,7 @@ diff@^5.1.0:
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531"
|
||||
integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==
|
||||
|
||||
dir-glob@^3.0.0, dir-glob@^3.0.1:
|
||||
dir-glob@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
||||
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
|
||||
@@ -3271,11 +3143,6 @@ duplexer2@~0.1.0:
|
||||
dependencies:
|
||||
readable-stream "^2.0.2"
|
||||
|
||||
duplexer3@^0.1.4:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e"
|
||||
integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
|
||||
|
||||
eastasianwidth@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
||||
@@ -3901,21 +3768,6 @@ execa@^4.0.3:
|
||||
signal-exit "^3.0.2"
|
||||
strip-final-newline "^2.0.0"
|
||||
|
||||
execa@^5.0.0:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
|
||||
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
|
||||
dependencies:
|
||||
cross-spawn "^7.0.3"
|
||||
get-stream "^6.0.0"
|
||||
human-signals "^2.1.0"
|
||||
is-stream "^2.0.0"
|
||||
merge-stream "^2.0.0"
|
||||
npm-run-path "^4.0.1"
|
||||
onetime "^5.1.2"
|
||||
signal-exit "^3.0.3"
|
||||
strip-final-newline "^2.0.0"
|
||||
|
||||
execa@^8.0.0:
|
||||
version "8.0.1"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c"
|
||||
@@ -4016,7 +3868,7 @@ fast-glob@3.2.12:
|
||||
merge2 "^1.3.0"
|
||||
micromatch "^4.0.4"
|
||||
|
||||
fast-glob@^3.0.3, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.2:
|
||||
fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.2:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
|
||||
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
|
||||
@@ -4185,15 +4037,6 @@ form-data@^2.3.2:
|
||||
combined-stream "^1.0.6"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
form-data@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
|
||||
integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.8"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
form-data@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
||||
@@ -4240,15 +4083,6 @@ fs-extra@^11.0.0, fs-extra@^11.1.0:
|
||||
jsonfile "^6.0.1"
|
||||
universalify "^2.0.0"
|
||||
|
||||
fs-extra@^8.0.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
|
||||
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.0"
|
||||
jsonfile "^4.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-extra@^9.0.1:
|
||||
version "9.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
|
||||
@@ -4339,7 +4173,7 @@ get-stream@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
|
||||
integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==
|
||||
|
||||
get-stream@^5.0.0, get-stream@^5.1.0:
|
||||
get-stream@^5.0.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
|
||||
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
|
||||
@@ -4456,20 +4290,6 @@ globalthis@^1.0.3:
|
||||
define-properties "^1.2.1"
|
||||
gopd "^1.0.1"
|
||||
|
||||
globby@^10.0.0:
|
||||
version "10.0.2"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543"
|
||||
integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==
|
||||
dependencies:
|
||||
"@types/glob" "^7.1.1"
|
||||
array-union "^2.1.0"
|
||||
dir-glob "^3.0.1"
|
||||
fast-glob "^3.0.3"
|
||||
glob "^7.1.3"
|
||||
ignore "^5.1.1"
|
||||
merge2 "^1.2.3"
|
||||
slash "^3.0.0"
|
||||
|
||||
globby@^11.1.0:
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
|
||||
@@ -4501,27 +4321,6 @@ gopd@^1.0.1:
|
||||
dependencies:
|
||||
get-intrinsic "^1.1.3"
|
||||
|
||||
got@^10.0.1:
|
||||
version "10.7.0"
|
||||
resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f"
|
||||
integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==
|
||||
dependencies:
|
||||
"@sindresorhus/is" "^2.0.0"
|
||||
"@szmarczak/http-timer" "^4.0.0"
|
||||
"@types/cacheable-request" "^6.0.1"
|
||||
cacheable-lookup "^2.0.0"
|
||||
cacheable-request "^7.0.1"
|
||||
decompress-response "^5.0.0"
|
||||
duplexer3 "^0.1.4"
|
||||
get-stream "^5.0.0"
|
||||
lowercase-keys "^2.0.0"
|
||||
mimic-response "^2.1.0"
|
||||
p-cancelable "^2.0.0"
|
||||
p-event "^4.0.0"
|
||||
responselike "^2.0.0"
|
||||
to-readable-stream "^2.0.0"
|
||||
type-fest "^0.10.0"
|
||||
|
||||
graceful-fs@4.2.10:
|
||||
version "4.2.10"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
|
||||
@@ -4630,7 +4429,7 @@ html-minifier-terser@^7.2.0:
|
||||
relateurl "^0.2.7"
|
||||
terser "^5.15.1"
|
||||
|
||||
http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1:
|
||||
http-cache-semantics@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
|
||||
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
|
||||
@@ -4667,11 +4466,6 @@ human-signals@^1.1.1:
|
||||
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
|
||||
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
|
||||
|
||||
human-signals@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
||||
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
||||
|
||||
human-signals@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
|
||||
@@ -4713,7 +4507,7 @@ ignore-walk@^6.0.4:
|
||||
dependencies:
|
||||
minimatch "^9.0.0"
|
||||
|
||||
ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4:
|
||||
ignore@^5.2.0, ignore@^5.2.4:
|
||||
version "5.3.1"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
|
||||
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
|
||||
@@ -5254,13 +5048,6 @@ json5@^2.2.0, json5@^2.2.3:
|
||||
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
|
||||
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
|
||||
|
||||
jsonfile@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
|
||||
integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsonfile@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
|
||||
@@ -5290,7 +5077,7 @@ just-diff@^6.0.0:
|
||||
resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
|
||||
integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
|
||||
|
||||
keyv@^4.0.0, keyv@^4.5.3:
|
||||
keyv@^4.5.3:
|
||||
version "4.5.4"
|
||||
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
|
||||
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
|
||||
@@ -5558,11 +5345,6 @@ lower-case@^2.0.2:
|
||||
dependencies:
|
||||
tslib "^2.0.3"
|
||||
|
||||
lowercase-keys@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
|
||||
integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
|
||||
|
||||
lru-cache@^10.0.1, lru-cache@^10.2.0, lru-cache@^10.2.2:
|
||||
version "10.2.2"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
|
||||
@@ -5652,7 +5434,7 @@ merge-stream@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
||||
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
||||
|
||||
merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1:
|
||||
merge2@^1.3.0, merge2@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||
@@ -5702,16 +5484,6 @@ mimic-fn@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
|
||||
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
|
||||
|
||||
mimic-response@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
|
||||
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
|
||||
|
||||
mimic-response@^2.0.0, mimic-response@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
|
||||
integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
|
||||
|
||||
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
||||
@@ -5957,11 +5729,6 @@ normalize-range@^0.1.2:
|
||||
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
|
||||
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
|
||||
|
||||
normalize-url@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
|
||||
integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
|
||||
|
||||
normalize-url@^8.0.0:
|
||||
version "8.0.1"
|
||||
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a"
|
||||
@@ -6191,7 +5958,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
onetime@^5.1.0, onetime@^5.1.2:
|
||||
onetime@^5.1.0:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
|
||||
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
|
||||
@@ -6246,23 +6013,11 @@ os-tmpdir@~1.0.2:
|
||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||
integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
|
||||
|
||||
p-cancelable@^2.0.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
|
||||
integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
|
||||
|
||||
p-each-series@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-3.0.0.tgz#d1aed5e96ef29864c897367a7d2a628fdc960806"
|
||||
integrity sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==
|
||||
|
||||
p-event@^4.0.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5"
|
||||
integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==
|
||||
dependencies:
|
||||
p-timeout "^3.1.0"
|
||||
|
||||
p-filter@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-4.1.0.tgz#fe0aa794e2dfad8ecf595a39a245484fcd09c6e4"
|
||||
@@ -6325,13 +6080,6 @@ p-reduce@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160"
|
||||
integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==
|
||||
|
||||
p-timeout@^3.1.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
|
||||
integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
|
||||
dependencies:
|
||||
p-finally "^1.0.0"
|
||||
|
||||
p-try@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
|
||||
@@ -6392,7 +6140,7 @@ parse-json@^4.0.0:
|
||||
error-ex "^1.3.1"
|
||||
json-parse-better-errors "^1.0.1"
|
||||
|
||||
parse-json@^5.0.0, parse-json@^5.2.0:
|
||||
parse-json@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
|
||||
integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
|
||||
@@ -6692,11 +6440,6 @@ quasar@^2.16.0:
|
||||
resolved "https://registry.yarnpkg.com/quasar/-/quasar-2.16.4.tgz#e4c6c062df1037fa546f1f0bbc99daa67e36bec2"
|
||||
integrity sha512-ICntco9uZ4PeyLgzVckjK3fsS+LG7+rOUmRyR7Gq3XpfeCADs1edIRjlxsPpWBBJvK/9AHLGPO6XNmnJmdJm0A==
|
||||
|
||||
querystring@^0.2.0:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd"
|
||||
integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==
|
||||
|
||||
queue-microtask@^1.2.2:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||
@@ -6918,13 +6661,6 @@ resolve@^1.14.2, resolve@^1.22.0, resolve@^1.22.1:
|
||||
path-parse "^1.0.7"
|
||||
supports-preserve-symlinks-flag "^1.0.0"
|
||||
|
||||
responselike@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc"
|
||||
integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==
|
||||
dependencies:
|
||||
lowercase-keys "^2.0.0"
|
||||
|
||||
restore-cursor@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
|
||||
@@ -7202,7 +6938,7 @@ side-channel@^1.0.4, side-channel@^1.0.6:
|
||||
get-intrinsic "^1.2.4"
|
||||
object-inspect "^1.13.1"
|
||||
|
||||
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
|
||||
signal-exit@^3.0.0, signal-exit@^3.0.2:
|
||||
version "3.0.7"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
||||
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
|
||||
@@ -7713,11 +7449,6 @@ to-fast-properties@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
||||
integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
|
||||
|
||||
to-readable-stream@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8"
|
||||
integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||
@@ -7789,11 +7520,6 @@ type-check@^0.4.0, type-check@~0.4.0:
|
||||
dependencies:
|
||||
prelude-ls "^1.2.1"
|
||||
|
||||
type-fest@^0.10.0:
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642"
|
||||
integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==
|
||||
|
||||
type-fest@^0.16.0:
|
||||
version "0.16.0"
|
||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
|
||||
@@ -7979,11 +7705,6 @@ universal-user-agent@^7.0.0, universal-user-agent@^7.0.2:
|
||||
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e"
|
||||
integrity sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==
|
||||
|
||||
universalify@^0.1.0:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
||||
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
|
||||
|
||||
universalify@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
|
||||
@@ -8014,11 +7735,6 @@ uri-js@^4.2.2, uri-js@^4.4.1:
|
||||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
url-join@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7"
|
||||
integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==
|
||||
|
||||
url-join@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1"
|
||||
|
||||
Reference in New Issue
Block a user