@abapify/adt-plugin-gcts 0.0.0 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +63 -1
  2. package/package.json +32 -3
package/README.md CHANGED
@@ -1,3 +1,65 @@
1
1
  # @abapify/adt-plugin-gcts
2
2
 
3
- Placeholder. The real release is published via CI/CD.
3
+ **Status:** v0.1 (E06 — SAP → disk direction)
4
+
5
+ Serializes ABAP objects to **gCTS / AFF** layout (`SAP/abap-file-formats`):
6
+ JSON metadata files (`<name>.<type>.json`) alongside source files
7
+ (`<name>.<type>.abap`, `.asddls`, `.asdcls`).
8
+
9
+ ## Why a single plugin for both gCTS and AFF?
10
+
11
+ gCTS (git-enabled CTS) and AFF (`SAP/abap-file-formats`) use the same
12
+ on-disk layout: JSON metadata, AFF-specific extensions, `(ns)` bracket
13
+ namespace folders. A single `--format gcts` (alias: `--format aff`) serves
14
+ both communities. The open question on naming is tracked in
15
+ `docs/roadmap/epics/e06-gcts-format-plugin.md`.
16
+
17
+ ## Filename conventions
18
+
19
+ | Object | Metadata | Source |
20
+ | ------ | ------------------- | ----------------------------------------------------------------- |
21
+ | CLAS | `<name>.clas.json` | `<name>.clas.abap` (+ `.locals_def.abap`, `.testclasses.abap`, …) |
22
+ | INTF | `<name>.intf.json` | `<name>.intf.abap` |
23
+ | PROG | `<name>.prog.json` | `<name>.prog.abap` |
24
+ | FUGR | `<name>.fugr.json` | — (FM files handled separately) |
25
+ | DOMA | `<name>.doma.json` | — |
26
+ | DTEL | `<name>.dtel.json` | — |
27
+ | TABL | `<name>.tabl.json` | — |
28
+ | TTYP | `<name>.ttyp.json` | — |
29
+ | DEVC | `package.devc.json` | — |
30
+ | DDLS | `<name>.ddls.json` | `<name>.ddls.asddls` |
31
+ | DCLS | `<name>.dcls.json` | `<name>.dcls.asdcls` |
32
+
33
+ vs abapGit: metadata is **JSON** (not XML) and CDS uses **`.asddls` /
34
+ `.asdcls`** (not `.acds`).
35
+
36
+ ## Usage
37
+
38
+ Install and import — the plugin self-registers:
39
+
40
+ ```ts
41
+ import '@abapify/adt-plugin-gcts';
42
+ import { getFormatPlugin } from '@abapify/adt-plugin';
43
+
44
+ const gcts = getFormatPlugin('gcts')!;
45
+ ```
46
+
47
+ Via the CLI (after E06 wiring):
48
+
49
+ ```bash
50
+ bunx adt import package --format gcts ZMYPKG ./out
51
+ ```
52
+
53
+ The SAP → disk direction is fully supported in v0.1. disk → SAP (adt-cli's
54
+ `export` command) is deferred — see the epic's "Open questions".
55
+
56
+ ## Architecture
57
+
58
+ This plugin is a peer of `@abapify/adt-plugin-abapgit`:
59
+
60
+ - `FormatPlugin` (declarative contract) is in `src/lib/format/gcts-format.ts`
61
+ - `AdtPlugin` (higher-level import behaviour) is in `src/lib/gcts-plugin.ts`
62
+ - Per-object-type handlers live in `src/lib/handlers/objects/` and
63
+ auto-register through the `createHandler` factory in `handlers/base.ts`
64
+
65
+ See [`AGENTS.md`](./AGENTS.md) for internal conventions.
package/package.json CHANGED
@@ -1,5 +1,34 @@
1
1
  {
2
2
  "name": "@abapify/adt-plugin-gcts",
3
- "version": "0.0.0",
4
- "description": "Placeholder — real package is published via CI/CD (trusted publishing)."
5
- }
3
+ "version": "0.3.6",
4
+ "license": "MIT",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "type": "module",
9
+ "types": "./dist/index.d.mts",
10
+ "exports": {
11
+ ".": "./dist/index.mjs",
12
+ "./package.json": "./package.json"
13
+ },
14
+ "nx": {
15
+ "name": "adt-plugin-gcts"
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "dependencies": {
21
+ "@abapify/adk": "0.3.6",
22
+ "@abapify/adt-plugin": "0.3.6"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/abapify/adt-cli.git",
27
+ "directory": "packages/adt-plugin-gcts"
28
+ },
29
+ "homepage": "https://github.com/abapify/adt-cli/tree/main/packages/adt-plugin-gcts#readme",
30
+ "bugs": {
31
+ "url": "https://github.com/abapify/adt-cli/issues"
32
+ },
33
+ "description": "gCTS (git-enabled CTS) plugin for adt-cli — repository, commit, pull/push operations on SAP gCTS"
34
+ }