apexrest 1.3.0-beta.1 → 1.3.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.
- package/README.md +90 -140
- package/dist/codex-compat/.claude-plugin/marketplace.json +20 -0
- package/dist/codex-compat/plugins/apexrest-apex/.claude-plugin/plugin.json +28 -0
- package/dist/codex-compat/plugins/apexrest-apex/.codex-plugin/plugin.json +7 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/generator.json +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/manifest.json +6 -6
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/analytics/status-summary/1.0.0/block.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/crud/report-dialog/1.0.0/block.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/detail/1.0.0/block.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/filtered-list/1.0.0/block.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/history/1.0.0/block.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/master-detail/1.0.0/block.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-blueprint.schema.json +5 -4
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-contract.schema.json +2 -2
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-entity.schema.json +2 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-field.schema.json +2 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-instance.schema.json +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-operation.schema.json +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-plan.schema.json +5 -4
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/deploy-plan.schema.json +18 -24
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/operations.schema.json +352 -569
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/policy.schema.json +21 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/project.schema.json +4 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/blank-app/README.md +0 -2
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/customer-crm/README.md +1 -3
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/existing-app/README.md +0 -2
- package/dist/codex-compat/plugins/apexrest-apex/runtime/apexrest.mjs +70 -44
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-5PCC7GZM.mjs +4090 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-BVPAS3TD.mjs +18 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-CVMECW6D.mjs +65 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-EBBEN4AV.mjs → chunk-JYN3YHP3.mjs} +4220 -10639
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-KGTE7Q5Y.mjs +23 -0
- package/dist/{runtime/chunk-33GE2NWZ.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-KKRFM7Q7.mjs} +21 -4
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2VBZESVC.mjs → chunk-MNU54A7W.mjs} +7 -1
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-N4C2SKCN.mjs +6912 -0
- package/dist/{runtime/chunk-KQ5IDT7Z.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-P3CVQAZW.mjs} +822 -102
- package/dist/{runtime/chunk-BAHECVGO.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-QKYF6N6U.mjs} +192 -114
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-G3KR57BY.mjs → chunk-RBJJNQ5O.mjs} +7 -7
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-YPLIIQ4Y.mjs → chunk-TMSMKVRP.mjs} +486 -352
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2Z3BZF66.mjs → chunk-WPS3CSQJ.mjs} +124 -11
- package/dist/codex-compat/plugins/apexrest-apex/runtime/mcp.mjs +5 -10
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/SKILL.md +22 -25
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/agents/openai.yaml +3 -3
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/references/component-routes.md +1 -5
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/SKILL.md +4 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/agents/openai.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/references/capture-and-curation.md +2 -2
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-safety/SKILL.md +18 -0
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-safety/agents/openai.yaml +4 -0
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-setup/SKILL.md +20 -10
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-setup/agents/openai.yaml +3 -3
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/SKILL.md +11 -8
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/agents/openai.yaml +3 -3
- package/dist/resources/blocks/generator.json +1 -1
- package/dist/resources/blocks/manifest.json +6 -6
- package/dist/resources/blocks/packages/analytics/status-summary/1.0.0/block.yaml +1 -1
- package/dist/resources/blocks/packages/crud/report-dialog/1.0.0/block.yaml +1 -1
- package/dist/resources/blocks/packages/read/detail/1.0.0/block.yaml +1 -1
- package/dist/resources/blocks/packages/read/filtered-list/1.0.0/block.yaml +1 -1
- package/dist/resources/blocks/packages/read/history/1.0.0/block.yaml +1 -1
- package/dist/resources/blocks/packages/read/master-detail/1.0.0/block.yaml +1 -1
- package/dist/resources/schemas/composer-blueprint.schema.json +5 -4
- package/dist/resources/schemas/composer-contract.schema.json +2 -2
- package/dist/resources/schemas/composer-entity.schema.json +2 -1
- package/dist/resources/schemas/composer-field.schema.json +2 -1
- package/dist/resources/schemas/composer-instance.schema.json +1 -1
- package/dist/resources/schemas/composer-operation.schema.json +1 -1
- package/dist/resources/schemas/composer-plan.schema.json +5 -4
- package/dist/resources/schemas/deploy-plan.schema.json +18 -24
- package/dist/resources/schemas/operations.schema.json +352 -569
- package/dist/resources/schemas/policy.schema.json +21 -0
- package/dist/resources/schemas/project.schema.json +4 -7
- package/dist/resources/templates/blank-app/README.md +0 -2
- package/dist/resources/templates/customer-crm/README.md +1 -3
- package/dist/resources/templates/existing-app/README.md +0 -2
- package/dist/runtime/apexrest.mjs +70 -44
- package/dist/runtime/chunk-5PCC7GZM.mjs +4090 -0
- package/dist/runtime/chunk-BVPAS3TD.mjs +18 -0
- package/dist/runtime/chunk-CVMECW6D.mjs +65 -0
- package/dist/runtime/{chunk-EBBEN4AV.mjs → chunk-JYN3YHP3.mjs} +4220 -10639
- package/dist/runtime/chunk-KGTE7Q5Y.mjs +23 -0
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-33GE2NWZ.mjs → runtime/chunk-KKRFM7Q7.mjs} +21 -4
- package/dist/runtime/{chunk-2VBZESVC.mjs → chunk-MNU54A7W.mjs} +7 -1
- package/dist/runtime/chunk-N4C2SKCN.mjs +6912 -0
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-KQ5IDT7Z.mjs → runtime/chunk-P3CVQAZW.mjs} +822 -102
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-BAHECVGO.mjs → runtime/chunk-QKYF6N6U.mjs} +192 -114
- package/dist/runtime/{chunk-G3KR57BY.mjs → chunk-RBJJNQ5O.mjs} +7 -7
- package/dist/runtime/{chunk-YPLIIQ4Y.mjs → chunk-TMSMKVRP.mjs} +486 -352
- package/dist/runtime/{chunk-2Z3BZF66.mjs → chunk-WPS3CSQJ.mjs} +124 -11
- package/dist/runtime/mcp.mjs +5 -10
- package/package.json +6 -6
- package/README.uk.md +0 -212
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/index.html +0 -68
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.css +0 -627
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.js +0 -861
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/blank-app/README.uk.md +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/customer-crm/README.uk.md +0 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/database-control/install.sql +0 -17
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/existing-app/README.uk.md +0 -9
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@playwright__test__LICENSE +0 -202
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@playwright__test__NOTICE +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@types__node__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@types__yauzl__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__LICENSE +0 -55
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__NOTICE.txt +0 -436
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__esbuild__LICENSE.md +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__fflate__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__marked__LICENSE +0 -44
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright-core__LICENSE +0 -202
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright-core__NOTICE +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright__LICENSE +0 -202
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright__NOTICE +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__prettier__LICENSE +0 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__typescript__LICENSE +0 -55
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__typescript__NOTICE.txt +0 -436
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__undici-types__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-2BBNJVKW.mjs +0 -1996
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-5JI3XEAK.mjs +0 -14
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-CYPFCUNE.mjs +0 -150
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-ESDVN7DS.mjs +0 -14
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-FTTPESNK.mjs +0 -203
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-HKJVCGQQ.mjs +0 -1302
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-RWGJITHZ.mjs +0 -992
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-TLYYCRQA.mjs +0 -329
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-WXP75UUP.mjs +0 -18
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-YQHHPRJH.mjs +0 -14
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-compose/SKILL.md +0 -18
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-compose/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-compose/references/workflow.md +0 -15
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/SKILL.md +0 -9
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/SKILL.md +0 -9
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-deploy/SKILL.md +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-deploy/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-install-dependencies/SKILL.md +0 -38
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-install-dependencies/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/SKILL.md +0 -30
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/references/cli-catalog.md +0 -30
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/SKILL.md +0 -14
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/SKILL.md +0 -11
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-review/SKILL.md +0 -11
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-review/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-test/SKILL.md +0 -29
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-test/agents/openai.yaml +0 -4
- package/dist/resources/panel/index.html +0 -68
- package/dist/resources/panel/panel.css +0 -627
- package/dist/resources/panel/panel.js +0 -861
- package/dist/resources/templates/blank-app/README.uk.md +0 -5
- package/dist/resources/templates/customer-crm/README.uk.md +0 -7
- package/dist/resources/templates/database-control/install.sql +0 -17
- package/dist/resources/templates/existing-app/README.uk.md +0 -9
- package/dist/resources/third-party/node_modules__@playwright__test__LICENSE +0 -202
- package/dist/resources/third-party/node_modules__@playwright__test__NOTICE +0 -5
- package/dist/resources/third-party/node_modules__@types__node__LICENSE +0 -21
- package/dist/resources/third-party/node_modules__@types__yauzl__LICENSE +0 -21
- package/dist/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__LICENSE +0 -55
- package/dist/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__NOTICE.txt +0 -436
- package/dist/resources/third-party/node_modules__esbuild__LICENSE.md +0 -21
- package/dist/resources/third-party/node_modules__fflate__LICENSE +0 -21
- package/dist/resources/third-party/node_modules__marked__LICENSE +0 -44
- package/dist/resources/third-party/node_modules__playwright-core__LICENSE +0 -202
- package/dist/resources/third-party/node_modules__playwright-core__NOTICE +0 -5
- package/dist/resources/third-party/node_modules__playwright__LICENSE +0 -202
- package/dist/resources/third-party/node_modules__playwright__NOTICE +0 -5
- package/dist/resources/third-party/node_modules__prettier__LICENSE +0 -7
- package/dist/resources/third-party/node_modules__typescript__LICENSE +0 -55
- package/dist/resources/third-party/node_modules__typescript__NOTICE.txt +0 -436
- package/dist/resources/third-party/node_modules__undici-types__LICENSE +0 -21
- package/dist/runtime/chunk-2BBNJVKW.mjs +0 -1996
- package/dist/runtime/chunk-5JI3XEAK.mjs +0 -14
- package/dist/runtime/chunk-CYPFCUNE.mjs +0 -150
- package/dist/runtime/chunk-ESDVN7DS.mjs +0 -14
- package/dist/runtime/chunk-FTTPESNK.mjs +0 -203
- package/dist/runtime/chunk-HKJVCGQQ.mjs +0 -1302
- package/dist/runtime/chunk-RWGJITHZ.mjs +0 -992
- package/dist/runtime/chunk-TLYYCRQA.mjs +0 -329
- package/dist/runtime/chunk-WXP75UUP.mjs +0 -18
- package/dist/runtime/chunk-YQHHPRJH.mjs +0 -14
|
@@ -42,6 +42,27 @@
|
|
|
42
42
|
"planDigest": {
|
|
43
43
|
"type": "string",
|
|
44
44
|
"pattern": "^[a-f0-9]{64}$"
|
|
45
|
+
},
|
|
46
|
+
"note": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"maxLength": 2000
|
|
49
|
+
},
|
|
50
|
+
"grantedBy": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"enum": [
|
|
53
|
+
"user",
|
|
54
|
+
"ship"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"grantedAt": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"format": "date-time",
|
|
60
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
|
|
61
|
+
},
|
|
62
|
+
"workerPid": {
|
|
63
|
+
"type": "integer",
|
|
64
|
+
"exclusiveMinimum": 0,
|
|
65
|
+
"maximum": 9007199254740991
|
|
45
66
|
}
|
|
46
67
|
},
|
|
47
68
|
"required": [
|
|
@@ -140,13 +140,6 @@
|
|
|
140
140
|
"expectedMarker": {
|
|
141
141
|
"type": "string",
|
|
142
142
|
"minLength": 1
|
|
143
|
-
},
|
|
144
|
-
"deploymentControl": {
|
|
145
|
-
"type": "string",
|
|
146
|
-
"enum": [
|
|
147
|
-
"local",
|
|
148
|
-
"database"
|
|
149
|
-
]
|
|
150
143
|
}
|
|
151
144
|
},
|
|
152
145
|
"required": [
|
|
@@ -215,6 +208,10 @@
|
|
|
215
208
|
],
|
|
216
209
|
"additionalProperties": false
|
|
217
210
|
},
|
|
211
|
+
"deploymentControl": {
|
|
212
|
+
"type": "string",
|
|
213
|
+
"const": "local"
|
|
214
|
+
},
|
|
218
215
|
"composer": {
|
|
219
216
|
"type": "object",
|
|
220
217
|
"properties": {
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
# Blank application
|
|
2
2
|
|
|
3
|
-
English | [Українська](README.uk.md)
|
|
4
|
-
|
|
5
3
|
This is a real Oracle SQLcl-generated starter reference with its original `.apex/apexlang.json`. New projects run the real generator; they do not fabricate metadata from this fixture. Requires SQLcl 26.1.2+ and Java 21. Authentication remains the Oracle starter default. Local compilation has been verified; deployment requires an explicitly configured APEX 26.1+ workspace/schema.
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Customer CRM
|
|
2
2
|
|
|
3
|
-
English | [Українська](README.uk.md)
|
|
4
|
-
|
|
5
3
|
A real APEXlang overlay on the Oracle-generated starter: customers report (page 10), dashboard (20), modal form (80), server validation package/trigger, immutable table migration, utPLSQL tests and authenticated browser CRUD with unique synthetic records. It retains default authentication; configure a dedicated test account through authorized APEX administration. No password or ORDS endpoint is included.
|
|
6
4
|
|
|
7
|
-
`project init ./crm --template customer-crm` generates fresh Oracle metadata and applies the reviewed overlay. Local SQLcl compilation passed on 26.1.2 with MMD 26.1.0+3102. Live target deployment, test selectors and SQL results still need integration evidence. Required suites are SQL and E2E. Configure the environment and authorized test grants, provide utPLSQL for the SQL suite, then authenticate interactively.
|
|
5
|
+
`project init ./crm --template customer-crm` generates fresh Oracle metadata and applies the reviewed overlay. Local SQLcl compilation passed on 26.1.2 with MMD 26.1.0+3102. Live target deployment, test selectors and SQL results still need integration evidence. Required suites are SQL and E2E. Configure the environment and authorized test grants, provide utPLSQL for the SQL suite, then authenticate interactively.
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Adopt an existing application
|
|
2
2
|
|
|
3
|
-
English | [Українська](README.uk.md)
|
|
4
|
-
|
|
5
3
|
Create an `existing-app` project skeleton, configure the exact existing test target and named read connection, then run `project adopt --env dev --app-id ID`. It exports through a private staging directory and installs only into a new source directory. If that directory exists, adoption fails with LOCAL_EDITS_CONFLICT; local edits are preserved. For later exports use a fresh `apex export --env dev --output review/export-UUID` directory.
|
|
6
4
|
|
|
7
5
|
Keep `.apex`, Oracle IDs, shared LOVs, authentication and all page files under version control. `apex diff --env dev` compares source file hashes with a fresh Oracle export. It is a textual inventory, not proof of complete semantic component coverage. SQLcl exports use original IDs and omit export timestamps; no invented normalization removes metadata.
|
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
dispatch,
|
|
5
|
+
executeJob,
|
|
6
|
+
failQueuedJob,
|
|
7
|
+
internalOperations,
|
|
5
8
|
schemas
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
} from "./chunk-2BBNJVKW.mjs";
|
|
10
|
-
import "./chunk-YPLIIQ4Y.mjs";
|
|
11
|
-
import "./chunk-G3KR57BY.mjs";
|
|
9
|
+
} from "./chunk-5PCC7GZM.mjs";
|
|
10
|
+
import "./chunk-TMSMKVRP.mjs";
|
|
11
|
+
import "./chunk-RBJJNQ5O.mjs";
|
|
12
12
|
import {
|
|
13
13
|
loadProject
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-N4C2SKCN.mjs";
|
|
15
|
+
import "./chunk-JYN3YHP3.mjs";
|
|
15
16
|
import {
|
|
16
17
|
Fault,
|
|
17
18
|
failure
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-WPS3CSQJ.mjs";
|
|
19
20
|
|
|
20
21
|
// packages/cli/src/main.ts
|
|
21
22
|
var argv = process.argv.slice(2);
|
|
@@ -30,29 +31,36 @@ var positional = {
|
|
|
30
31
|
"jobs.cancel": ["id"],
|
|
31
32
|
"artifacts.read": ["id"]
|
|
32
33
|
};
|
|
34
|
+
var groupAliases = { job: "jobs", reference: "docs" };
|
|
35
|
+
var variadic = { "docs.search": "query" };
|
|
33
36
|
function operationFrom(args) {
|
|
34
|
-
const first = args[0];
|
|
35
|
-
if (["doctor", "version", "setup"].includes(first ?? "")) return { op: first, start: 1 };
|
|
37
|
+
const first = groupAliases[args[0] ?? ""] ?? args[0];
|
|
38
|
+
if (["doctor", "version", "setup", "ship", "status"].includes(first ?? "")) return { op: first, start: 1 };
|
|
36
39
|
if (first === "test" && ["unit", "sql", "api", "e2e", "all"].includes(args[1] ?? ""))
|
|
37
40
|
return { op: "test.run", start: 2, suite: args[1] };
|
|
38
|
-
return { op:
|
|
41
|
+
return { op: [first, args[1]].join("."), start: 2 };
|
|
39
42
|
}
|
|
43
|
+
var listed = (op) => !internalOperations.includes(op);
|
|
40
44
|
var selected = operationFrom(argv);
|
|
45
|
+
function knownHelpTarget() {
|
|
46
|
+
const first = argv[0] ?? "";
|
|
47
|
+
return first.startsWith("-") || ["mcp", "test"].includes(first) || selected.op in schemas || // A command group alone (apexrest deploy --help) lists the general help.
|
|
48
|
+
(argv[1] ?? "-").startsWith("-") && Object.keys(schemas).some((op) => op.startsWith((groupAliases[first] ?? first) + "."));
|
|
49
|
+
}
|
|
41
50
|
function help() {
|
|
42
51
|
const key = selected.op;
|
|
43
52
|
const lines = [
|
|
44
53
|
"APEXREST for Codex \u2014 independent Oracle APEX developer tools",
|
|
45
54
|
"Usage: apexrest [command] [options]",
|
|
46
|
-
"Run apexrest in a terminal to manage tools, plugins and saved SQLcl connections.",
|
|
47
|
-
" tui [--project PATH] Open the terminal UI explicitly",
|
|
48
|
-
" panel tui [--project PATH] Live development panel inside Codex CLI",
|
|
49
55
|
"",
|
|
50
|
-
...Object.keys(schemas).filter((x) => x !== "test.run").map((x) => " " + x.replace(".", " ")),
|
|
56
|
+
...Object.keys(schemas).filter((x) => x !== "test.run" && listed(x)).map((x) => " " + x.replace(".", " ")),
|
|
51
57
|
" test unit|sql|api|e2e|all [--env NAME]",
|
|
58
|
+
" job status|cancel <id> (alias of jobs ...)",
|
|
52
59
|
" mcp",
|
|
53
60
|
"",
|
|
54
61
|
"--json emits one structured JSON result; diagnostics use stderr.",
|
|
55
62
|
"Use --project PATH for project operations. Environment never defaults.",
|
|
63
|
+
"ship --env NAME --mode plan|apply --user-request TEXT validates, plans and (apply) imports with a plan-bound grant.",
|
|
56
64
|
"Exit codes: 0 success, 1 failed, 2 input, 3 dependency, 4 approval, 5 conflict, 6 unknown/cancelled."
|
|
57
65
|
];
|
|
58
66
|
if (schemas[key])
|
|
@@ -85,16 +93,31 @@ function help() {
|
|
|
85
93
|
"Read a result ID, grammar:production-name, component: ID or pattern: ID.",
|
|
86
94
|
"Follow nextOffset using --offset; catalog navigationOffset recovers all dependency links."
|
|
87
95
|
);
|
|
88
|
-
if (key === "panel.
|
|
96
|
+
if (key === "panel.status")
|
|
89
97
|
lines.push(
|
|
90
98
|
"",
|
|
91
|
-
"
|
|
92
|
-
|
|
99
|
+
"Read-only local snapshot: settings, connections, Git changes, sync state, jobs and deployment journal.",
|
|
100
|
+
"No server, worker, job or database call is started. Same as: apexrest status --detail project --project PATH --json"
|
|
93
101
|
);
|
|
94
102
|
if (key === "jobs.status")
|
|
95
103
|
lines.push(
|
|
96
|
-
"Use --wait-seconds
|
|
104
|
+
"Use --wait-seconds N (up to 120) to wait for an existing job without repeated status calls (default: immediate)."
|
|
105
|
+
);
|
|
106
|
+
if (key === "ship")
|
|
107
|
+
lines.push(
|
|
108
|
+
"",
|
|
109
|
+
"mode plan: validate with the Oracle compiler, read the target and write .apexrest/plans/ship-<id>.json for review.",
|
|
110
|
+
"mode apply: non-production only. Records a deploy grant bound to this project, target and plan digest with the",
|
|
111
|
+
"user's literal --user-request, imports with backup/drift/identity checks, verifies, runs required suites, then",
|
|
112
|
+
"removes the grant. Production targets require the protected CI approval path (deploy apply)."
|
|
97
113
|
);
|
|
114
|
+
if (key === "status")
|
|
115
|
+
lines.push(
|
|
116
|
+
"",
|
|
117
|
+
"--detail doctor probes local tools; --detail project (default) prints the read-only project snapshot."
|
|
118
|
+
);
|
|
119
|
+
if (key === "apex.validate")
|
|
120
|
+
lines.push("", "Runs in-process and returns structured diagnostics (file, line, column, type, hint).");
|
|
98
121
|
if (key === "dependencies.install")
|
|
99
122
|
lines.push(
|
|
100
123
|
"",
|
|
@@ -133,7 +156,7 @@ function help() {
|
|
|
133
156
|
"cli: SQLcl subprocess (default). mcp: official SQLcl stdio server (sql -mcp).",
|
|
134
157
|
"direct: Oracle listener connection (default). ords: SQLcl OREST over HTTP(S), without port 1521.",
|
|
135
158
|
"ORDS uses SQLcl CLI; select --mode cli with --database-transport ords.",
|
|
136
|
-
"Configure the ORDS URL, username and password for each reference using connection add
|
|
159
|
+
"Configure the ORDS URL, username and password for each reference using connection add.",
|
|
137
160
|
"--mcp-restrict-level 4|1: 4 is the default; 1 explicitly permits scripts but blocks host commands.",
|
|
138
161
|
"Saved in APEXREST_HOME/sqlcl.json. No connection, download or Codex registration is changed.",
|
|
139
162
|
"SQLcl MCP can write its own database audit log on connected operations. No silent CLI fallback."
|
|
@@ -141,28 +164,26 @@ function help() {
|
|
|
141
164
|
console.log(lines.join("\n"));
|
|
142
165
|
}
|
|
143
166
|
try {
|
|
144
|
-
if (argv.includes("--help") || argv.includes("-h"))
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
167
|
+
if (argv.includes("--help") || argv.includes("-h")) {
|
|
168
|
+
if (!knownHelpTarget())
|
|
169
|
+
throw new Fault(
|
|
170
|
+
"INVALID_INPUT",
|
|
171
|
+
`Unknown command: ${argv.filter((a) => !a.startsWith("-")).join(" ")}. Use apexrest --help.`,
|
|
172
|
+
2
|
|
173
|
+
);
|
|
174
|
+
help();
|
|
150
175
|
} else if (!argv.length) help();
|
|
151
|
-
else if (argv[0] === "
|
|
152
|
-
if (argv.length !== 2 && (argv.length !== 4 || argv[2] !== "--project" || !argv[3]))
|
|
153
|
-
throw new Fault("INVALID_INPUT", "Usage: apexrest panel tui [--project PATH]", 2);
|
|
154
|
-
const { runPanelTui } = await import("./chunk-CYPFCUNE.mjs");
|
|
155
|
-
await runPanelTui(argv[3] ?? process.cwd());
|
|
156
|
-
} else if (argv[0] === "--panel-worker") {
|
|
157
|
-
if (argv.length !== 2 || !argv[1]) throw new Fault("INVALID_INPUT", "Invalid panel worker request.", 2);
|
|
158
|
-
const { servePanel } = await import("./chunk-WXP75UUP.mjs");
|
|
159
|
-
await servePanel(argv[1]);
|
|
160
|
-
} else if (argv[0] === "--job-worker") {
|
|
176
|
+
else if (argv[0] === "--job-worker") {
|
|
161
177
|
if (argv.length !== 3) throw new Fault("INVALID_INPUT", "Invalid internal job request.", 2);
|
|
162
|
-
|
|
178
|
+
try {
|
|
179
|
+
await executeJob(await loadProject(argv[1]), argv[2], dispatch);
|
|
180
|
+
} catch (error) {
|
|
181
|
+
await failQueuedJob(argv[1], argv[2], error).catch(() => void 0);
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
163
184
|
} else if (argv[0] === "mcp") {
|
|
164
185
|
if (argv.length !== 1) throw new Fault("INVALID_INPUT", "mcp accepts no arguments.", 2);
|
|
165
|
-
const { startMcp } = await import("./chunk-
|
|
186
|
+
const { startMcp } = await import("./chunk-QKYF6N6U.mjs");
|
|
166
187
|
await startMcp();
|
|
167
188
|
} else {
|
|
168
189
|
const selectedOp = argv[0] === "--version" ? { op: "version", start: 1 } : selected;
|
|
@@ -182,10 +203,11 @@ try {
|
|
|
182
203
|
"keepRuntime",
|
|
183
204
|
"headed",
|
|
184
205
|
"saved",
|
|
185
|
-
"workingCopy"
|
|
206
|
+
"workingCopy",
|
|
207
|
+
"includeUnresolved"
|
|
186
208
|
]);
|
|
187
209
|
const numbers = /* @__PURE__ */ new Set(["appId", "offset", "limit", "waitSeconds"]);
|
|
188
|
-
let index = 0;
|
|
210
|
+
let index = 0, rest;
|
|
189
211
|
for (let i = selectedOp.start; i < argv.length; i++) {
|
|
190
212
|
const token = argv[i];
|
|
191
213
|
if (token.startsWith("--")) {
|
|
@@ -198,12 +220,16 @@ try {
|
|
|
198
220
|
const value = argv[++i];
|
|
199
221
|
if (!value || value.startsWith("--"))
|
|
200
222
|
throw new Fault("INVALID_INPUT", `Missing value for ${token}`, 2);
|
|
201
|
-
input[name] =
|
|
223
|
+
input[name] = numbers.has(name) ? Number(value) : value;
|
|
202
224
|
}
|
|
203
225
|
} else {
|
|
204
|
-
const field = positional[selectedOp.op]?.[index
|
|
205
|
-
if (
|
|
206
|
-
|
|
226
|
+
const field = positional[selectedOp.op]?.[index];
|
|
227
|
+
if (field && !(field in input)) {
|
|
228
|
+
index++;
|
|
229
|
+
input[field] = token;
|
|
230
|
+
if (variadic[selectedOp.op] === field) rest = field;
|
|
231
|
+
} else if (!field && rest) input[rest] = input[rest] + " " + token;
|
|
232
|
+
else throw new Fault("INVALID_INPUT", `Unexpected argument: ${token}`, 2);
|
|
207
233
|
}
|
|
208
234
|
}
|
|
209
235
|
const result = await dispatch(selectedOp.op, input);
|