@gpc-cli/cli 0.9.73 → 0.9.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__complete-AZXI2O25.js +0 -0
- package/dist/anomalies-I5P6QQAZ.js +0 -0
- package/dist/apps-WPUQOQLL.js +0 -0
- package/dist/audit-BDPS5ODN.js +0 -0
- package/dist/auth-4DRT7ZH2.js +0 -0
- package/dist/bin.js +13 -3
- package/dist/bin.js.map +1 -1
- package/dist/bundle-PFTE7XMU.js +0 -0
- package/dist/bundles-6F3AD4QM.js +0 -0
- package/dist/cache-FGNP7Y37.js +0 -0
- package/dist/changelog-STYBBYDC.js +0 -0
- package/dist/chunk-22XCOLZX.js +0 -0
- package/dist/chunk-3SJ6OXCZ.js +0 -0
- package/dist/chunk-ELXAK7GI.js +0 -0
- package/dist/chunk-FAN4ZITI.js +0 -0
- package/dist/chunk-JDRY7HK5.js +0 -0
- package/dist/{chunk-TXKXP5OB.js → chunk-OUOQV62L.js} +16 -24
- package/dist/chunk-OUOQV62L.js.map +1 -0
- package/dist/chunk-QLR4EWJG.js +0 -0
- package/dist/chunk-RZQSEDKI.js +0 -0
- package/dist/chunk-WSLFHX5X.js +0 -0
- package/dist/chunk-Y3QZDAKS.js +0 -0
- package/dist/completion-ZK7RPPFD.js +0 -0
- package/dist/{config-4XQ6IDUL.js → config-RRQM4A3G.js} +3 -3
- package/dist/{config-4XQ6IDUL.js.map → config-RRQM4A3G.js.map} +1 -1
- package/dist/data-safety-46VY64OO.js +0 -0
- package/dist/device-tiers-MNZYMG3Y.js +0 -0
- package/dist/diff-OBSHUSTL.js +0 -0
- package/dist/docs-OU6LSSJD.js +0 -0
- package/dist/{doctor-HG6RAGIX.js → doctor-AT2OKNVS.js} +5 -3
- package/dist/doctor-AT2OKNVS.js.map +1 -0
- package/dist/enterprise-L7DTIX2O.js +0 -0
- package/dist/external-transactions-BP42CK3H.js +0 -0
- package/dist/{feedback-D6UPL6KC.js → feedback-LS2B3NBT.js} +2 -2
- package/dist/games-SVFN2YIS.js +0 -0
- package/dist/generated/docs-bundle.json +1 -1
- package/dist/generated-apks-TC33S2YN.js +0 -0
- package/dist/grants-32DED5QL.js +0 -0
- package/dist/iap-EPJ76IAC.js +0 -0
- package/dist/index.js +1 -1
- package/dist/init-OCBFI4VH.js +0 -0
- package/dist/{install-skills-S342NJ7T.js → install-skills-P7LXDTBX.js} +29 -2
- package/dist/install-skills-P7LXDTBX.js.map +1 -0
- package/dist/internal-sharing-KW6YENDG.js +0 -0
- package/dist/{listings-ISNU3FIE.js → listings-7RTA4MCI.js} +28 -1
- package/dist/listings-7RTA4MCI.js.map +1 -0
- package/dist/migrate-ZQCJGQQS.js +0 -0
- package/dist/one-time-products-OIDBVCFE.js +0 -0
- package/dist/preflight-BL67VGUX.js +0 -0
- package/dist/pricing-HYQRXKNO.js +0 -0
- package/dist/prompt-HJXNXXAR.js +0 -0
- package/dist/publish-4LBADN6P.js +0 -0
- package/dist/purchase-options-KFWW4JW2.js +0 -0
- package/dist/purchases-GFLYTKR3.js +0 -0
- package/dist/quickstart-FOWM3OKT.js +0 -0
- package/dist/quota-MZRWYJGR.js +0 -0
- package/dist/recovery-2VJJLAIQ.js +0 -0
- package/dist/{releases-AROYBDKP.js → releases-KXE2EKSO.js} +15 -15
- package/dist/{releases-AROYBDKP.js.map → releases-KXE2EKSO.js.map} +1 -1
- package/dist/reports-CIB2T3XT.js +0 -0
- package/dist/reviews-GZ2VOIRN.js +0 -0
- package/dist/{rtdn-YII4H6SD.js → rtdn-ECZOB7FH.js} +8 -2
- package/dist/rtdn-ECZOB7FH.js.map +1 -0
- package/dist/setup-IKHZQJIH.js +0 -0
- package/dist/{skills-FWGWYYKJ.js → skills-2H5WC6XH.js} +11 -15
- package/dist/skills-2H5WC6XH.js.map +1 -0
- package/dist/status-32AJ7A6O.js +0 -0
- package/dist/subscriptions-JPHFBREY.js +0 -0
- package/dist/system-apks-KWTN5LHO.js +0 -0
- package/dist/testers-7ILUCKYB.js +0 -0
- package/dist/tracks-RH3RKVFB.js +0 -0
- package/dist/train-G44NEK43.js +0 -0
- package/dist/{update-OBVICSJY.js → update-2Z5XJD33.js} +2 -2
- package/dist/users-W66YCFDX.js +0 -0
- package/dist/validate-RHWEZYD2.js +0 -0
- package/dist/verify-O2PSBTIC.js +0 -0
- package/dist/{version-GEAIW3J7.js → version-SOH43VET.js} +2 -2
- package/dist/vitals-QPHS6QFH.js +0 -0
- package/dist/watch-4HDEY5FR.js +0 -0
- package/package.json +19 -19
- package/LICENSE +0 -21
- package/dist/chunk-TXKXP5OB.js.map +0 -1
- package/dist/doctor-HG6RAGIX.js.map +0 -1
- package/dist/install-skills-S342NJ7T.js.map +0 -1
- package/dist/listings-ISNU3FIE.js.map +0 -1
- package/dist/rtdn-YII4H6SD.js.map +0 -1
- package/dist/skills-FWGWYYKJ.js.map +0 -1
- /package/dist/{feedback-D6UPL6KC.js.map → feedback-LS2B3NBT.js.map} +0 -0
- /package/dist/{update-OBVICSJY.js.map → update-2Z5XJD33.js.map} +0 -0
- /package/dist/{version-GEAIW3J7.js.map → version-SOH43VET.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/rtdn.ts"],"sourcesContent":["import { resolvePackageName, getClient } from \"../resolve.js\";\nimport type { Command } from \"commander\";\nimport { loadConfig } from \"@gpc-cli/config\";\nimport { getRtdnStatus, decodeNotification, formatNotification, formatOutput } from \"@gpc-cli/core\";\nimport { getOutputFormat } from \"../format.js\";\nimport { yellow } from \"../colors.js\";\n\nexport function registerRtdnCommands(program: Command): void {\n const rtdn = program.command(\"rtdn\").description(\"Real-Time Developer Notifications (Pub/Sub)\");\n\n rtdn\n .command(\"status\")\n .description(\"Check RTDN notification topic configuration\")\n .action(async () => {\n const config = await loadConfig();\n const packageName = resolvePackageName(program.opts()[\"app\"], config);\n const client = await getClient(config);\n const format = getOutputFormat(program, config);\n\n const status = await getRtdnStatus(client, packageName);\n\n if (format === \"json\") {\n console.log(formatOutput({ packageName, ...status }, format));\n return;\n }\n\n console.log(`\\nRTDN Status — ${packageName}`);\n console.log(`${\"─\".repeat(50)}`);\n if (status.topicName) {\n console.log(`Topic: ${status.topicName}`);\n console.log(`Enabled: ${status.enabled ? \"yes\" : \"no\"}`);\n } else {\n console.log(`${yellow(\"⚠\")} No RTDN topic configured.`);\n console.log(`\\nTo set up RTDN:`);\n console.log(` 1. Create a Pub/Sub topic in your GCP project`);\n console.log(\n ` 2. Grant google-play-developer-notifications@system.gserviceaccount.com the Pub/Sub Publisher role`,\n );\n console.log(\n ` 3. Set the topic in Play Console → Monetization setup → Real-time developer notifications`,\n );\n console.log(` 4. Or use: gpc rtdn setup --topic projects/<PROJECT>/topics/<TOPIC>`);\n }\n });\n\n rtdn\n .command(\"decode <payload>\")\n .description(\"Decode a base64-encoded Pub/Sub notification payload\")\n .action(async (payload: string) => {\n const config = await loadConfig();\n const format = getOutputFormat(program, config);\n\n const notification = decodeNotification(payload);\n const formatted = formatNotification(notification);\n\n if (format === \"json\") {\n console.log(formatOutput(notification, format));\n } else {\n console.log(formatOutput(formatted, format));\n }\n });\n\n rtdn\n .command(\"test\")\n .description(\"Send a test notification to verify RTDN setup\")\n .action(async () => {\n const config = await loadConfig();\n const format = getOutputFormat(program, config);\n\n if (format !== \"json\") {\n console.log(\n `${yellow(\"⚠\")} Test notifications can only be triggered from the Play Console.`,\n );\n console.log(`\\nTo test RTDN:`);\n console.log(\n ` 1. Open Play Console → Monetization setup → Real-time developer notifications`,\n );\n console.log(` 2. Click \"Send test notification\"`);\n console.log(` 3. Check your Pub/Sub subscription for the test message`);\n console.log(` 4. Decode it with: gpc rtdn decode <base64-payload>`);\n } else {\n console.log(\n formatOutput(\n {\n message: \"Test notifications can only be triggered from the Play Console\",\n steps: [\n \"Open Play Console → Monetization setup → RTDN\",\n \"Click 'Send test notification'\",\n \"Check your Pub/Sub subscription\",\n \"Decode with: gpc rtdn decode <payload>\",\n ],\n },\n format,\n ),\n );\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAEA,SAAS,kBAAkB;AAC3B,SAAS,eAAe,oBAAoB,oBAAoB,oBAAoB;AAI7E,SAAS,qBAAqB,SAAwB;AAC3D,QAAM,OAAO,QAAQ,QAAQ,MAAM,EAAE,YAAY,6CAA6C;AAE9F,OACG,QAAQ,QAAQ,EAChB,YAAY,6CAA6C,EACzD,OAAO,YAAY;AAClB,UAAM,SAAS,MAAM,WAAW;AAChC,UAAM,cAAc,mBAAmB,QAAQ,KAAK,EAAE,KAAK,GAAG,MAAM;AACpE,UAAM,SAAS,MAAM,UAAU,MAAM;AACrC,UAAM,SAAS,gBAAgB,SAAS,MAAM;AAE9C,UAAM,SAAS,MAAM,cAAc,QAAQ,WAAW;AAEtD,QAAI,WAAW,QAAQ;AACrB,cAAQ,IAAI,aAAa,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAC5D;AAAA,IACF;AAEA,YAAQ,IAAI;AAAA,qBAAmB,WAAW,EAAE;AAC5C,YAAQ,IAAI,GAAG,SAAI,OAAO,EAAE,CAAC,EAAE;AAC/B,QAAI,OAAO,WAAW;AACpB,cAAQ,IAAI,YAAY,OAAO,SAAS,EAAE;AAC1C,cAAQ,IAAI,YAAY,OAAO,UAAU,QAAQ,IAAI,EAAE;AAAA,IACzD,OAAO;AACL,cAAQ,IAAI,GAAG,OAAO,QAAG,CAAC,4BAA4B;AACtD,cAAQ,IAAI;AAAA,gBAAmB;AAC/B,cAAQ,IAAI,iDAAiD;AAC7D,cAAQ;AAAA,QACN;AAAA,MACF;AACA,cAAQ;AAAA,QACN;AAAA,MACF;AACA,cAAQ,IAAI,uEAAuE;AAAA,IACrF;AAAA,EACF,CAAC;AAEH,OACG,QAAQ,kBAAkB,EAC1B,YAAY,sDAAsD,EAClE,OAAO,OAAO,YAAoB;AACjC,UAAM,SAAS,MAAM,WAAW;AAChC,UAAM,SAAS,gBAAgB,SAAS,MAAM;AAE9C,UAAM,eAAe,mBAAmB,OAAO;AAC/C,UAAM,YAAY,mBAAmB,YAAY;AAEjD,QAAI,WAAW,QAAQ;AACrB,cAAQ,IAAI,aAAa,cAAc,MAAM,CAAC;AAAA,IAChD,OAAO;AACL,cAAQ,IAAI,aAAa,WAAW,MAAM,CAAC;AAAA,IAC7C;AAAA,EACF,CAAC;AAEH,OACG,QAAQ,MAAM,EACd,YAAY,+CAA+C,EAC3D,OAAO,YAAY;AAClB,UAAM,SAAS,MAAM,WAAW;AAChC,UAAM,SAAS,gBAAgB,SAAS,MAAM;AAE9C,QAAI,WAAW,QAAQ;AACrB,cAAQ;AAAA,QACN,GAAG,OAAO,QAAG,CAAC;AAAA,MAChB;AACA,cAAQ,IAAI;AAAA,cAAiB;AAC7B,cAAQ;AAAA,QACN;AAAA,MACF;AACA,cAAQ,IAAI,qCAAqC;AACjD,cAAQ,IAAI,2DAA2D;AACvE,cAAQ,IAAI,uDAAuD;AAAA,IACrE,OAAO;AACL,cAAQ;AAAA,QACN;AAAA,UACE;AAAA,YACE,SAAS;AAAA,YACT,OAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,UACF;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACL;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/skills.ts"],"sourcesContent":["import type { Command } from \"commander\";\nimport { readdir, readFile } from \"node:fs/promises\";\nimport { join, resolve } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { getOutputFormat } from \"../format.js\";\nimport { formatOutput } from \"@gpc-cli/core\";\nimport { green, yellow, dim } from \"../colors.js\";\n\ninterface InstalledSkill {\n name: string;\n version: string;\n path: string;\n}\n\nconst GPC_SKILLS_REPO = \"yasserstudio/gpc-skills\";\n\nexport async function discoverInstalledSkills(overrideDir?: string): Promise<InstalledSkill[]> {\n const home = homedir();\n const dirs = overrideDir\n ? [overrideDir]\n : [\n resolve(process.cwd(), \".agents/skills\"),\n join(home, \".claude/skills\"),\n join(home, \".cursor/skills\"),\n join(home, \".gemini/skills\"),\n ];\n\n const skills: InstalledSkill[] = [];\n const seen = new Set<string>();\n\n for (const dir of dirs) {\n let entries: string[];\n try {\n entries = await readdir(dir);\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n if (!entry.startsWith(\"gpc-\") || seen.has(entry)) continue;\n const skillPath = join(dir, entry);\n const skillFile = join(skillPath, \"SKILL.md\");\n try {\n const content = await readFile(skillFile, \"utf-8\");\n const versionMatch = content.match(/^\\s*version:\\s*(.+)/m);\n const version = versionMatch?.[1]?.trim().replace(/^['\"]|['\"]$/g, \"\") ?? \"unknown\";\n skills.push({ name: entry, version, path: skillPath });\n seen.add(entry);\n } catch {\n // SKILL.md not readable, skip\n }\n }\n }\n\n return skills.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport async function fetchLatestPackVersion(\n repo: string = GPC_SKILLS_REPO,\n): Promise<string | null> {\n try {\n const resp = await fetch(`https://api.github.com/repos/${repo}/releases/latest`, {\n headers: { Accept: \"application/vnd.github.v3+json\" },\n signal: AbortSignal.timeout(5000),\n });\n if (!resp.ok) return null;\n const data = (await resp.json()) as { tag_name?: string };\n return data.tag_name?.replace(/^v/, \"\") ?? null;\n } catch {\n return null;\n }\n}\n\nexport function registerSkillsCommand(program: Command): void {\n const skills = program.command(\"skills\").description(\"Manage GPC agent skills\");\n\n skills\n .command(\"check\")\n .description(\"Check installed GPC skills for updates\")\n .option(\"--dir <path>\", \"Override skill scan directory\")\n .option(\"--repo <owner/name>\", \"Custom skills repository\", GPC_SKILLS_REPO)\n .action(async (opts: { dir?: string; repo?: string }) => {\n const format = getOutputFormat(program, {});\n const installed = await discoverInstalledSkills(opts.dir);\n const latest = await fetchLatestPackVersion(opts.repo);\n\n if (format === \"json\") {\n console.log(\n formatOutput(\n {\n latestPackVersion: latest,\n skills: installed.map((s) => ({\n name: s.name,\n version: s.version,\n path: s.path,\n })),\n },\n \"json\",\n ),\n );\n return;\n }\n\n if (installed.length === 0) {\n console.log(\"No GPC skills found.\");\n console.log(\n `\\nInstall with: npx skills add ${opts.repo ?? GPC_SKILLS_REPO}`,\n );\n return;\n }\n\n console.log(\n `GPC Skills${latest ? ` (pack ${latest} on GitHub)` : \"\"}\\n`,\n );\n\n const nameWidth = Math.max(...installed.map((s) => s.name.length), 4);\n const header = `${\"SKILL\".padEnd(nameWidth)} VERSION PATH`;\n console.log(header);\n console.log(\"─\".repeat(header.length));\n\n for (const skill of installed) {\n const name = skill.name.padEnd(nameWidth);\n const version = skill.version.padEnd(11);\n console.log(`${name} ${version} ${dim(skill.path)}`);\n }\n\n console.log(`\\n ${green(\"✓\")} ${installed.length} skill${installed.length !== 1 ? \"s\" : \"\"} installed`);\n\n if (latest) {\n console.log(\n `\\n Update all: npx skills add ${opts.repo ?? GPC_SKILLS_REPO}`,\n );\n }\n });\n}\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|