@abapify/adt-plugin-gcts 0.0.0 → 0.3.5
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/README.md +63 -1
- package/package.json +31 -3
package/README.md
CHANGED
|
@@ -1,3 +1,65 @@
|
|
|
1
1
|
# @abapify/adt-plugin-gcts
|
|
2
2
|
|
|
3
|
-
|
|
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,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abapify/adt-plugin-gcts",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
|
|
3
|
+
"version": "0.3.5",
|
|
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.5",
|
|
22
|
+
"@abapify/adt-plugin": "0.3.5"
|
|
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
|
+
}
|