@synoikia/create-plugin 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/build.d.ts +2 -6
  2. package/dist/build.js.map +1 -1
  3. package/dist/check.d.ts +2 -6
  4. package/dist/check.js +2 -6
  5. package/dist/check.js.map +1 -1
  6. package/dist/create.js +1 -3
  7. package/dist/create.js.map +1 -1
  8. package/dist/files.d.ts +1 -6
  9. package/dist/files.js +1 -6
  10. package/dist/files.js.map +1 -1
  11. package/dist/repo-root.d.ts +1 -4
  12. package/dist/repo-root.js +1 -4
  13. package/dist/repo-root.js.map +1 -1
  14. package/dist/repo.d.ts +2 -13
  15. package/dist/repo.js +7 -3
  16. package/dist/repo.js.map +1 -1
  17. package/dist/scaffold.d.ts +2 -8
  18. package/dist/scaffold.js +3 -12
  19. package/dist/scaffold.js.map +1 -1
  20. package/dist/vitest.d.ts +1 -4
  21. package/dist/vitest.js +1 -4
  22. package/dist/vitest.js.map +1 -1
  23. package/package.json +4 -4
  24. package/templates/plugin/blank/plugin.yaml +2 -3
  25. package/templates/plugin/blank/src/plugin.ts +3 -5
  26. package/templates/plugin/openapi-rest/plugin.yaml +2 -4
  27. package/templates/plugin/openapi-rest/src/plugin.ts +2 -4
  28. package/templates/plugin/openapi-rest/test/e2e.test.ts +1 -4
  29. package/templates/plugin/openapi-rest/test/fake-upstream.ts +1 -4
  30. package/templates/plugin/static-rest/plugin.yaml +1 -3
  31. package/templates/plugin/static-rest/src/plugin.ts +2 -4
  32. package/templates/plugin/static-rest/test/e2e.test.ts +1 -4
  33. package/templates/plugin/static-rest/test/fake-upstream.ts +1 -4
  34. package/templates/plugin/websocket-rpc/plugin.yaml +2 -4
  35. package/templates/plugin/websocket-rpc/src/client.ts +2 -5
  36. package/templates/plugin/websocket-rpc/src/plugin.ts +4 -5
  37. package/templates/plugin/websocket-rpc/test/e2e.test.ts +1 -4
  38. package/templates/plugin/websocket-rpc/test/fake-upstream.ts +1 -4
  39. package/templates/repo/claude/CLAUDE.md +1 -1
  40. package/templates/repo/release/_github/workflows/release.yml +2 -4
package/dist/build.d.ts CHANGED
@@ -1,9 +1,5 @@
1
- /**
2
- * Bundles a plugin into one self-contained `dist/index.js`: under the permission model the child can
3
- * read nothing outside its own package directory, so every dependency is inlined, and data files
4
- * (`plugin.yaml`, guides) are compiled in. The banner gives the ESM bundle a `require` for bundled
5
- * CommonJS (such as `ws`).
6
- */
1
+ /** Bundles a plugin into one self-contained `dist/index.js` with data files compiled in; the banner
2
+ * gives bundled CommonJS (such as `ws`) a `require`. */
7
3
  export interface BuildOptions {
8
4
  /** The plugin package directory. */
9
5
  dir: string;
package/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmB1C,MAAM,MAAM,GACV,mHAAmH,CAAC;AAEtH,MAAM,SAAS,GAAW;IACxB,IAAI,EAAE,uBAAuB;IAC7B,KAAK,CAAC,CAAC;QACL,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/C,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAkB;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;IACxE,MAAM,KAAK,CAAC;QACV,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC;QACnE,OAAO;QACP,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QACtB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,OAAO,EAAE,CAAC,SAAS,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe1C,MAAM,MAAM,GACV,mHAAmH,CAAC;AAEtH,MAAM,SAAS,GAAW;IACxB,IAAI,EAAE,uBAAuB;IAC7B,KAAK,CAAC,CAAC;QACL,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/C,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAkB;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;IACxE,MAAM,KAAK,CAAC;QACV,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC;QACnE,OAAO;QACP,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QACtB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,OAAO,EAAE,CAAC,SAAS,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/check.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- /**
2
- * Static checks of a plugin package, the ones every plugin used to repeat in a `manifest.test.ts`:
3
- * the manifest is valid and compatible with this SDK, credential fields are write-only secrets in
4
- * `sensitiveKeys`, `plugin.yaml` is valid and names only declared match profiles, the manifest id is
5
- * the directory name, and `manifest.json` and `package.json` carry the same version.
6
- */
1
+ /** Static checks every plugin used to repeat: manifest, SDK range, secret fields, plugin.yaml and its
2
+ * match profiles, id = directory, and matching versions. */
7
3
  export declare function checkPlugin(dir: string): string[];
package/dist/check.js CHANGED
@@ -2,12 +2,8 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { checkManifest, isSdkCompatible, parseManifest, parsePluginSettings } from '@synoikia/plugin-sdk';
4
4
  import { parseYamlFile } from './files.js';
5
- /**
6
- * Static checks of a plugin package, the ones every plugin used to repeat in a `manifest.test.ts`:
7
- * the manifest is valid and compatible with this SDK, credential fields are write-only secrets in
8
- * `sensitiveKeys`, `plugin.yaml` is valid and names only declared match profiles, the manifest id is
9
- * the directory name, and `manifest.json` and `package.json` carry the same version.
10
- */
5
+ /** Static checks every plugin used to repeat: manifest, SDK range, secret fields, plugin.yaml and its
6
+ * match profiles, id = directory, and matching versions. */
11
7
  export function checkPlugin(dir) {
12
8
  const read = (name) => JSON.parse(readFileSync(path.join(dir, name), 'utf8'));
13
9
  let manifest;
package/dist/check.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAA4B,CAAC;IACjH,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,QAA6C,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC;IACvG,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,EAAE,8BAA8B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9G,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;YAChC,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;IAClH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;4DAC4D;AAC5D,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAA4B,CAAC;IACjH,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,QAA6C,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC;IACvG,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,EAAE,8BAA8B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9G,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;YAChC,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;IAClH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/create.js CHANGED
@@ -3,9 +3,7 @@ import path from 'node:path';
3
3
  import { parseArgs } from 'node:util';
4
4
  import { askPluginOptions, PLUGIN_FLAGS, prompts } from './prompts.js';
5
5
  import { createRepo, install, newPlugin } from './scaffold.js';
6
- /**
7
- * `pnpm create @synoikia/plugin <dir>`: a new plugin repository, then its first plugin.
8
- */
6
+ /** `pnpm create @synoikia/plugin <dir>`: a new plugin repository, then its first plugin. */
9
7
  const USAGE = `create-plugin <dir> [--repository owner/name] [--release] [--claude] [--no-plugin]
10
8
  [plugin flags, see: synoikia-plugin new]`;
11
9
  async function main(argv) {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
package/dist/files.d.ts CHANGED
@@ -1,9 +1,4 @@
1
- /**
2
- * How a plugin's data files become part of its bundle: `plugin.yaml` (and any other `.yaml`) is
3
- * parsed at build time and inlined as JSON, and `.md` files are inlined as text. Nothing is read
4
- * from disk at runtime, where the permission model would refuse it anyway. `plugin.yaml` is also
5
- * validated against the SDK schema, so a malformed one fails the build, not the install.
6
- */
1
+ /** Inlines a plugin's data files at build time: `.yaml` as validated JSON, `.md` as text. */
7
2
  /** Parses YAML as plain data: no custom tags, and aliases capped against expansion bombs. */
8
3
  export declare function parseYamlFile(file: string): unknown;
9
4
  /** Parses a YAML file; a file named `plugin.yaml` must also be valid plugin settings. */
package/dist/files.js CHANGED
@@ -2,12 +2,7 @@ import { readFileSync } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { parsePluginSettings } from '@synoikia/plugin-sdk';
4
4
  import { parse } from 'yaml';
5
- /**
6
- * How a plugin's data files become part of its bundle: `plugin.yaml` (and any other `.yaml`) is
7
- * parsed at build time and inlined as JSON, and `.md` files are inlined as text. Nothing is read
8
- * from disk at runtime, where the permission model would refuse it anyway. `plugin.yaml` is also
9
- * validated against the SDK schema, so a malformed one fails the build, not the install.
10
- */
5
+ /** Inlines a plugin's data files at build time: `.yaml` as validated JSON, `.md` as text. */
11
6
  /** Parses YAML as plain data: no custom tags, and aliases capped against expansion bombs. */
12
7
  export function parseYamlFile(file) {
13
8
  const text = readFileSync(file, 'utf8');
package/dist/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B;;;;;GAKG;AAEH,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mCAAoC,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAiB;IAC1D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAC9F,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAC/G,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B,6FAA6F;AAE7F,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mCAAoC,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAiB;IAC1D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAC9F,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAC/G,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -3,8 +3,5 @@ export declare function findRepoRoot(start?: string): string;
3
3
  /** This package's directory. */
4
4
  export declare const PACKAGE_DIR: string;
5
5
  export declare const TEMPLATES_DIR: string;
6
- /**
7
- * The range generated packages should use for one of this tool's own dependencies: as published
8
- * (`pnpm pack` turns `workspace:` ranges into real ones), else from the installed version.
9
- */
6
+ /** The range generated packages use for one of this tool's dependencies: as published, else installed. */
10
7
  export declare function dependencyRange(name: string): string;
package/dist/repo-root.js CHANGED
@@ -28,10 +28,7 @@ function installedVersion(name) {
28
28
  dir = parent;
29
29
  }
30
30
  }
31
- /**
32
- * The range generated packages should use for one of this tool's own dependencies: as published
33
- * (`pnpm pack` turns `workspace:` ranges into real ones), else from the installed version.
34
- */
31
+ /** The range generated packages use for one of this tool's dependencies: as published, else installed. */
35
32
  export function dependencyRange(name) {
36
33
  const own = JSON.parse(readFileSync(path.join(PACKAGE_DIR, 'package.json'), 'utf8'));
37
34
  if (name === own.name)
@@ -1 +1 @@
1
- {"version":3,"file":"repo-root.js","sourceRoot":"","sources":["../src/repo-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,sGAAsG;AACtG,MAAM,UAAU,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;IAChD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC;QACjG,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAEjE,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,GAAG,GAAG,WAAW,CAAC;IACtB,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA0B,CAAC,OAAO,CAAC;QACtG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAMlF,CAAC;IACF,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,SAAS,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"repo-root.js","sourceRoot":"","sources":["../src/repo-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,sGAAsG;AACtG,MAAM,UAAU,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;IAChD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC;QACjG,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAEjE,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,GAAG,GAAG,WAAW,CAAC;IACtB,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA0B,CAAC,OAAO,CAAC;QACtG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAMlF,CAAC;IACF,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,SAAS,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC"}
package/dist/repo.d.ts CHANGED
@@ -1,16 +1,5 @@
1
- /**
2
- * Builds a signed plugin repository that Synoikia installs plugins from (design §4.2–4.3). Every
3
- * plugin version is a GitHub release `<id>-v<version>` holding `<id>-<version>.tgz` and its minisign
4
- * signature; `index.json` lists every released version and lives on the fixed `index` release. A
5
- * release workflow runs the steps in order, signing between `pack` and `index`:
6
- *
7
- * pack build and pack each plugin whose manifest version isn't in the current index yet
8
- * index merge the new versions, with their signatures, into the current index
9
- * verify install the new versions with Synoikia's own repository service, pinned to minisign.pub
10
- * publish create the version releases, then replace index.json on the `index` release
11
- *
12
- * Released versions are never rebuilt or removed: to ship a change, bump the plugin's version.
13
- */
1
+ /** Builds a signed plugin repository (design §4.2–4.3): pack → (sign) → index → verify → publish, one
2
+ * `<id>-v<version>` release per version and `index.json` on the `index` release; versions never change. */
14
3
  export interface RepoOptions {
15
4
  /** The repository root (holding `plugins/` and `minisign.pub`). */
16
5
  root: string;
package/dist/repo.js CHANGED
@@ -3,6 +3,7 @@ import { createHash } from 'node:crypto';
3
3
  import { existsSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
4
4
  import { tmpdir } from 'node:os';
5
5
  import path from 'node:path';
6
+ import { checkPlugin } from './check.js';
6
7
  const INDEX_TAG = 'index';
7
8
  const readJson = (file) => JSON.parse(readFileSync(file, 'utf8'));
8
9
  /** `git@github.com:owner/name.git` or `https://github.com/owner/name(.git)` → `owner/name`. */
@@ -79,6 +80,10 @@ export function createRepoTool(opts) {
79
80
  }
80
81
  if (released(index, id, manifest.version))
81
82
  continue;
83
+ // The same checks the plugin's own tests run, so a release can't skip them.
84
+ const issues = checkPlugin(dir);
85
+ if (issues.length)
86
+ throw new Error(`plugins/${id}: ${issues.join('; ')}`);
82
87
  buildPlugin(dir);
83
88
  const file = `${id}-${manifest.version}.tgz`;
84
89
  // Flat layout, what core installs: manifest.json, package.json, dist/. Sorted, with fixed times and
@@ -188,9 +193,8 @@ export function createRepoTool(opts) {
188
193
  };
189
194
  for (const r of releases) {
190
195
  const tarball = path.join(out, r.file);
191
- // Left by a run that stopped before updating the index. Released bytes never change: continue only
192
- // if the tarball there is exactly this run's (packing is deterministic), and only then refresh its
193
- // signature, which the index about to be published carries.
196
+ // Left by an interrupted run: continue only if the tarball is byte-identical to this run's, then
197
+ // refresh its signature.
194
198
  if (exists(r.tag)) {
195
199
  const dir = mkdtempSync(path.join(tmpdir(), 'synoikia-release-'));
196
200
  try {
package/dist/repo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"repo.js","sourceRoot":"","sources":["../src/repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo.js","sourceRoot":"","sources":["../src/repo.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,5 @@
1
- /**
2
- * Scaffolding: a new plugin repository (`pnpm create @synoikia/plugin`) and a new plugin inside one
3
- * (`pnpm new`). Templates are plain files with `{{name}}` placeholders; only known names are replaced
4
- * and nothing in a template runs. Files whose name starts with `_` are written with a leading `.`
5
- * (npm drops some dotfiles from published packages). Generated code uses only the published SDK and
6
- * core APIs, and the generated manifest already follows the secret rules `synoikia-plugin check`
7
- * enforces.
8
- */
1
+ /** Scaffolds plugin repositories and plugins from templates with `{{name}}` placeholders (nothing runs;
2
+ * `_`-prefixed files become dotfiles), using only published SDK and core APIs. */
9
3
  export declare const ARCHETYPES: {
10
4
  readonly 'openapi-rest': "REST API that serves an OpenAPI spec: the catalog is the spec, rules lock and describe";
11
5
  readonly 'static-rest': "REST API without a spec: operations are declared in plugin.yaml";
package/dist/scaffold.js CHANGED
@@ -3,14 +3,8 @@ import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSy
3
3
  import path from 'node:path';
4
4
  import { RESERVED_NAMESPACES, SDK_VERSION } from '@synoikia/plugin-sdk';
5
5
  import { dependencyRange, TEMPLATES_DIR } from './repo-root.js';
6
- /**
7
- * Scaffolding: a new plugin repository (`pnpm create @synoikia/plugin`) and a new plugin inside one
8
- * (`pnpm new`). Templates are plain files with `{{name}}` placeholders; only known names are replaced
9
- * and nothing in a template runs. Files whose name starts with `_` are written with a leading `.`
10
- * (npm drops some dotfiles from published packages). Generated code uses only the published SDK and
11
- * core APIs, and the generated manifest already follows the secret rules `synoikia-plugin check`
12
- * enforces.
13
- */
6
+ /** Scaffolds plugin repositories and plugins from templates with `{{name}}` placeholders (nothing runs;
7
+ * `_`-prefixed files become dotfiles), using only published SDK and core APIs. */
14
8
  export const ARCHETYPES = {
15
9
  'openapi-rest': 'REST API that serves an OpenAPI spec: the catalog is the spec, rules lock and describe',
16
10
  'static-rest': 'REST API without a spec: operations are declared in plugin.yaml',
@@ -35,10 +29,7 @@ export function validateId(id, root) {
35
29
  return `plugins/${id} already exists`;
36
30
  return undefined;
37
31
  }
38
- /**
39
- * Display names and descriptions land in generated code (`const SERVICE = '…'`), YAML and Markdown:
40
- * plain text only, so no quote, backslash or newline can break out of them.
41
- */
32
+ /** Names and descriptions land in generated code, YAML and Markdown: plain text only. */
42
33
  const SAFE_TEXT = /^[\p{L}\p{N}][\p{L}\p{N} .,:()&+_/-]*$/u;
43
34
  export function validateName(name) {
44
35
  if (name.length > 64 || !SAFE_TEXT.test(name))
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
package/dist/vitest.d.ts CHANGED
@@ -1,7 +1,4 @@
1
- /**
2
- * Vite/Vitest plugin that loads `.yaml` and `.md` imports the way `synoikia-plugin build` bundles
3
- * them, so unit tests see exactly what the bundle does. Add it to the repository's `vitest.shared.ts`.
4
- */
1
+ /** Vitest plugin loading `.yaml` and `.md` imports as `synoikia-plugin build` bundles them. */
5
2
  export declare function pluginFiles(): {
6
3
  name: string;
7
4
  enforce: "pre";
package/dist/vitest.js CHANGED
@@ -1,8 +1,5 @@
1
1
  import { moduleSource } from './files.js';
2
- /**
3
- * Vite/Vitest plugin that loads `.yaml` and `.md` imports the way `synoikia-plugin build` bundles
4
- * them, so unit tests see exactly what the bundle does. Add it to the repository's `vitest.shared.ts`.
5
- */
2
+ /** Vitest plugin loading `.yaml` and `.md` imports as `synoikia-plugin build` bundles them. */
6
3
  export function pluginFiles() {
7
4
  return {
8
5
  name: 'synoikia-plugin-files',
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../src/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,KAAc;QACvB,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3E,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../src/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,+FAA+F;AAC/F,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,KAAc;QACvB,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3E,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synoikia/create-plugin",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Create Synoikia plugin repositories and plugins, then build, check and publish them",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,10 +33,10 @@
33
33
  "@clack/prompts": "^1.8.1",
34
34
  "esbuild": "^0.28.2",
35
35
  "yaml": "^2.9.1",
36
- "@synoikia/plugin-sdk": "^0.2.1"
36
+ "@synoikia/plugin-sdk": "^0.4.0"
37
37
  },
38
38
  "peerDependencies": {
39
- "@synoikia/core": "^0.4.0"
39
+ "@synoikia/core": "^0.6.0"
40
40
  },
41
41
  "peerDependenciesMeta": {
42
42
  "@synoikia/core": {
@@ -46,7 +46,7 @@
46
46
  "devDependencies": {
47
47
  "@types/ws": "^8.18.1",
48
48
  "ws": "^8.22.0",
49
- "@synoikia/core": "^0.4.0"
49
+ "@synoikia/core": "^0.6.0"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsc -p tsconfig.build.json",
@@ -1,7 +1,6 @@
1
1
  # yaml-language-server: $schema=./node_modules/@synoikia/plugin-sdk/plugin-settings.schema.json
2
- #
3
- # What {{name}} tells Synoikia about its operations. Declare them here (or discover them in
4
- # src/plugin.ts and keep only the rules). Core decides what is allowed. Reference: docs/plugin-authoring.md.
2
+ # {{name}}'s operations (or discover them in src/plugin.ts and keep only the rules).
3
+ # Reference: docs/plugin-authoring.md.
5
4
 
6
5
  defaults:
7
6
  timeouts: { request: 15000, lookup: 10000 }
@@ -13,10 +13,7 @@ import type { PluginHandlers } from '@synoikia/plugin-sdk';
13
13
  import raw from '../plugin.yaml';
14
14
  import { authHeaders } from './auth.js';
15
15
 
16
- /**
17
- * The {{name}} plugin. The sandbox calls `{{namespace}}.call(operation, params)`. Fill in the client
18
- * (`connect`), the version, and `invoke`; operations and their rules live in plugin.yaml.
19
- */
16
+ /** The {{name}} plugin: the sandbox calls `{{namespace}}.call(operation, params)`; rules live in plugin.yaml. */
20
17
 
21
18
  const SERVICE = '{{name}}';
22
19
 
@@ -65,7 +62,8 @@ export function create{{Pascal}}Plugin(): PluginHandlers {
65
62
  },
66
63
 
67
64
  invoke({ key }) {
68
- // TODO: call the upstream with kit.client(), then return rules.maskResult(key, result).
65
+ // TODO: call the upstream with kit.client() and return its result. Core masks the secrets
66
+ // plugin.yaml's `sensitiveResult` declares for this key.
69
67
  throw new PluginError(ErrorCodes.NotImplemented, `${key} is not implemented yet`);
70
68
  },
71
69
  };
@@ -1,8 +1,6 @@
1
1
  # yaml-language-server: $schema=./node_modules/@synoikia/plugin-sdk/plugin-settings.schema.json
2
- #
3
- # What {{name}} tells Synoikia about its operations. The OpenAPI spec lists them (GET reads, every other
4
- # verb writes, an action-shaped GET is a write flagged for review); these rules lock, split, classify
5
- # and describe them on top. Core decides what is allowed. Reference: docs/plugin-authoring.md.
2
+ # Rules on top of {{name}}'s OpenAPI catalog (GET reads, other verbs write); core decides what is allowed.
3
+ # Reference: docs/plugin-authoring.md.
6
4
 
7
5
  defaults:
8
6
  # The literal an approver types for a locked operation with no `confirm` of its own.
@@ -17,10 +17,8 @@ import type { PluginHandlers } from '@synoikia/plugin-sdk';
17
17
  import raw from '../plugin.yaml';
18
18
  import { authHeaders } from './auth.js';
19
19
 
20
- /**
21
- * The {{name}} plugin: the catalog is {{name}}'s OpenAPI spec, and the sandbox calls
22
- * `{{namespace}}.request({ method, path, query, body })`. Locks and secrets are in plugin.yaml.
23
- */
20
+ /** The {{name}} plugin: catalog from its OpenAPI spec; the sandbox calls
21
+ * `{{namespace}}.request({ method, path, query, body })`. */
24
22
 
25
23
  const SERVICE = '{{name}}';
26
24
 
@@ -7,10 +7,7 @@ import { CREDENTIALS } from './fake-auth.js';
7
7
  import { startFake{{Pascal}}, UPSTREAM_SECRET } from './fake-upstream.js';
8
8
  import type { Fake{{Pascal}} } from './fake-upstream.js';
9
9
 
10
- /**
11
- * The real Synoikia core running this plugin's built bundle (a permission-confined child, as in
12
- * production) against the fake {{name}}, through core's plugin harness.
13
- */
10
+ /** The real core running this plugin's built bundle against the fake {{name}}, via core's harness. */
14
11
 
15
12
  const PLUGIN_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
16
13
 
@@ -2,10 +2,7 @@ import { startFakeHttp } from '@synoikia/core/testing';
2
2
  import type { FakeHttp } from '@synoikia/core/testing';
3
3
  import { authorized } from './fake-auth.js';
4
4
 
5
- /**
6
- * A fake {{name}}: just enough of its API to exercise the plugin, including a response that holds a
7
- * secret, so the tests prove it never reaches the sandbox. Extend it as the plugin grows.
8
- */
5
+ /** A fake {{name}}: enough API to exercise the plugin, including a secret that must never reach the sandbox. */
9
6
 
10
7
  export const UPSTREAM_SECRET = 'fake-upstream-secret-123';
11
8
 
@@ -1,7 +1,5 @@
1
1
  # yaml-language-server: $schema=./node_modules/@synoikia/plugin-sdk/plugin-settings.schema.json
2
- #
3
- # What {{name}} tells Synoikia about its operations. With no spec to discover, every operation is
4
- # declared here with its own classification; rules lock and describe them on top. Core decides what is
2
+ # {{name}}'s operations, each declared with its classification, and rules on top; core decides what is
5
3
  # allowed. Reference: docs/plugin-authoring.md.
6
4
 
7
5
  defaults:
@@ -17,10 +17,8 @@ import type { PluginHandlers } from '@synoikia/plugin-sdk';
17
17
  import raw from '../plugin.yaml';
18
18
  import { authHeaders } from './auth.js';
19
19
 
20
- /**
21
- * The {{name}} plugin: operations are declared in plugin.yaml, and the sandbox calls
22
- * `{{namespace}}.call(operation, { path, query, body })`.
23
- */
20
+ /** The {{name}} plugin: operations declared in plugin.yaml; the sandbox calls
21
+ * `{{namespace}}.call(operation, { path, query, body })`. */
24
22
 
25
23
  const SERVICE = '{{name}}';
26
24
 
@@ -7,10 +7,7 @@ import { CREDENTIALS } from './fake-auth.js';
7
7
  import { startFake{{Pascal}}, UPSTREAM_SECRET } from './fake-upstream.js';
8
8
  import type { Fake{{Pascal}} } from './fake-upstream.js';
9
9
 
10
- /**
11
- * The real Synoikia core running this plugin's built bundle (a permission-confined child, as in
12
- * production) against the fake {{name}}, through core's plugin harness.
13
- */
10
+ /** The real core running this plugin's built bundle against the fake {{name}}, via core's harness. */
14
11
 
15
12
  const PLUGIN_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
16
13
 
@@ -2,10 +2,7 @@ import { startFakeHttp } from '@synoikia/core/testing';
2
2
  import type { FakeHttp } from '@synoikia/core/testing';
3
3
  import { authorized } from './fake-auth.js';
4
4
 
5
- /**
6
- * A fake {{name}}: just enough of its API to exercise the plugin, including a response that holds a
7
- * secret, so the tests prove it never reaches the sandbox. Extend it as the plugin grows.
8
- */
5
+ /** A fake {{name}}: enough API to exercise the plugin, including a secret that must never reach the sandbox. */
9
6
 
10
7
  export const UPSTREAM_SECRET = 'fake-upstream-secret-123';
11
8
 
@@ -1,8 +1,6 @@
1
1
  # yaml-language-server: $schema=./node_modules/@synoikia/plugin-sdk/plugin-settings.schema.json
2
- #
3
- # What {{name}} tells Synoikia about its JSON-RPC methods. Each method is declared here with its own
4
- # classification; rules lock and describe them on top. If the upstream can list its methods, build the
5
- # catalog from that instead and keep only the rules. Reference: docs/plugin-authoring.md.
2
+ # {{name}}'s JSON-RPC methods with their classification, and rules on top (discover them instead if the
3
+ # upstream can list them). Reference: docs/plugin-authoring.md.
6
4
 
7
5
  defaults:
8
6
  confirm: instance
@@ -1,11 +1,8 @@
1
1
  import { ErrorCodes, joinApiPath, PendingRequests, PluginError, singleFlight } from '@synoikia/plugin-sdk';
2
2
  import WebSocket from 'ws';
3
3
 
4
- /**
5
- * JSON-RPC 2.0 over one WebSocket: connects lazily (authenticating on the upgrade), reconnects on the
6
- * next call after a drop, and fails pending calls when the socket closes. Errors name the method,
7
- * never its params or the credentials.
8
- */
4
+ /** JSON-RPC 2.0 over one WebSocket: lazy connect (auth on upgrade), reconnect after a drop, pending calls
5
+ * fail on close; errors name the method, never params or credentials. */
9
6
 
10
7
  export interface RpcConnection {
11
8
  baseUrl: string;
@@ -16,10 +16,8 @@ import raw from '../plugin.yaml';
16
16
  import { authHeaders } from './auth.js';
17
17
  import { RpcClient } from './client.js';
18
18
 
19
- /**
20
- * The {{name}} plugin: JSON-RPC methods declared in plugin.yaml. The sandbox calls
21
- * `{{namespace}}.call(method, params)`.
22
- */
19
+ /** The {{name}} plugin: JSON-RPC methods declared in plugin.yaml; the sandbox calls
20
+ * `{{namespace}}.call(method, params)`. */
23
21
 
24
22
  const SERVICE = '{{name}}';
25
23
 
@@ -90,7 +88,8 @@ export function create{{Pascal}}Plugin(): PluginHandlers {
90
88
  async invoke({ key, params, context }) {
91
89
  const method = baseKey(key);
92
90
  if (!known.has(method)) throw new PluginError(ErrorCodes.UnknownOperation, `${method} is not a ${SERVICE} method`);
93
- return rules.maskResult(key, await kit.client().call(method, params, kit.timeout(context)));
91
+ // Core masks the result's declared secrets (plugin.yaml `sensitiveResult`).
92
+ return kit.client().call(method, params, kit.timeout(context));
94
93
  },
95
94
  };
96
95
  },
@@ -7,10 +7,7 @@ import { CREDENTIALS } from './fake-auth.js';
7
7
  import { startFake{{Pascal}}, UPSTREAM_SECRET } from './fake-upstream.js';
8
8
  import type { Fake{{Pascal}} } from './fake-upstream.js';
9
9
 
10
- /**
11
- * The real Synoikia core running this plugin's built bundle (a permission-confined child, as in
12
- * production) against the fake {{name}}, through core's plugin harness.
13
- */
10
+ /** The real core running this plugin's built bundle against the fake {{name}}, via core's harness. */
14
11
 
15
12
  const PLUGIN_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
16
13
 
@@ -2,10 +2,7 @@ import type { AddressInfo } from 'node:net';
2
2
  import { WebSocketServer } from 'ws';
3
3
  import { authorized } from './fake-auth.js';
4
4
 
5
- /**
6
- * A fake {{name}} speaking JSON-RPC 2.0 over WebSocket: just enough to exercise the plugin, including
7
- * a response that holds a secret, so the tests prove it never reaches the sandbox.
8
- */
5
+ /** A fake {{name}} over JSON-RPC/WebSocket, including a secret that must never reach the sandbox. */
9
6
 
10
7
  export const UPSTREAM_SECRET = 'fake-upstream-secret-123';
11
8
 
@@ -29,7 +29,7 @@ pnpm check # manifests, plugin.yaml and versions
29
29
  ## Rules that break releases or installs
30
30
 
31
31
  - **Self-contained bundle.** The plugin reads nothing outside its own package directory at runtime; `synoikia-plugin build` bundles every dependency and data file.
32
- - **Network hosts.** The plugin reaches only the hosts in `manifest.json` `network.hosts`.
32
+ - **Network hosts.** `manifest.json` `network.hosts` lists exactly the hosts the plugin connects to. Admins review it before enabling the plugin, and an update that changes it installs disabled. Core doesn't enforce it (the plugin process can reach any host), so it must be accurate.
33
33
  - **Secrets.** Every credential field is `writeOnly: true`, uses the `secret` widget and is in `sensitiveKeys`, along with every secret field the upstream returns. `synoikia-plugin check` enforces the first part; an e2e `secrets` contract check covers the second.
34
34
  - **Versions.** `version` in `manifest.json` and `package.json` must match, and a released version never changes. Bump only when asked; the `release-plugin` skill covers it.
35
35
 
@@ -1,9 +1,7 @@
1
1
  name: Release
2
2
 
3
- # Publishes the signed plugin repository Synoikia installs from (RELEASING.md). A plugin version is
4
- # released when its manifest version isn't in the published index yet: each gets a `<id>-v<version>`
5
- # release with its tarball and minisign signature, and index.json on the `index` release is replaced.
6
- # Released versions are never rebuilt or removed.
3
+ # Publishes the signed plugin repository (RELEASING.md): each manifest version not yet in the index gets a
4
+ # `<id>-v<version>` release, and index.json on the `index` release is replaced. Releases never change.
7
5
 
8
6
  on:
9
7
  push: