primitive-admin 1.0.53 → 1.0.55
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 +38 -10
- package/dist/bin/primitive.js +8 -0
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/apps.js +54 -2
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth.js +16 -6
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/blob-buckets.js +84 -7
- package/dist/src/commands/blob-buckets.js.map +1 -1
- package/dist/src/commands/catalog.js +3 -3
- package/dist/src/commands/catalog.js.map +1 -1
- package/dist/src/commands/collections.js +12 -9
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/databases.js +220 -82
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.js +77 -0
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/group-type-configs.js +1 -9
- package/dist/src/commands/group-type-configs.js.map +1 -1
- package/dist/src/commands/groups.js +12 -6
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.d.ts +161 -0
- package/dist/src/commands/guides.js +502 -84
- package/dist/src/commands/guides.js.map +1 -1
- package/dist/src/commands/integrations.js +2 -2
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/metadata.d.ts +2 -0
- package/dist/src/commands/metadata.js +344 -0
- package/dist/src/commands/metadata.js.map +1 -0
- package/dist/src/commands/prompts.js +2 -2
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.d.ts +1 -0
- package/dist/src/commands/rule-sets.js +25 -3
- package/dist/src/commands/rule-sets.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +2 -0
- package/dist/src/commands/scripts.js +667 -0
- package/dist/src/commands/scripts.js.map +1 -0
- package/dist/src/commands/settings.d.ts +15 -0
- package/dist/src/commands/settings.js +102 -0
- package/dist/src/commands/settings.js.map +1 -0
- package/dist/src/commands/sync-app-settings.d.ts +105 -0
- package/dist/src/commands/sync-app-settings.js +339 -0
- package/dist/src/commands/sync-app-settings.js.map +1 -0
- package/dist/src/commands/sync.d.ts +204 -9
- package/dist/src/commands/sync.js +1706 -371
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/vars.d.ts +8 -0
- package/dist/src/commands/vars.js +110 -0
- package/dist/src/commands/vars.js.map +1 -0
- package/dist/src/commands/webhooks.js +17 -3
- package/dist/src/commands/webhooks.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +30 -0
- package/dist/src/commands/workflows.js +667 -59
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +122 -18
- package/dist/src/lib/api-client.js +131 -2
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +108 -0
- package/dist/src/lib/app-settings-descriptor.js +250 -0
- package/dist/src/lib/app-settings-descriptor.js.map +1 -0
- package/dist/src/lib/batch.d.ts +26 -0
- package/dist/src/lib/batch.js +32 -0
- package/dist/src/lib/batch.js.map +1 -0
- package/dist/src/lib/block-layout.d.ts +160 -0
- package/dist/src/lib/block-layout.js +451 -0
- package/dist/src/lib/block-layout.js.map +1 -0
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +76 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js +144 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +68 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +168 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
- package/dist/src/lib/config-toml.d.ts +10 -0
- package/dist/src/lib/config-toml.js +42 -0
- package/dist/src/lib/config-toml.js.map +1 -0
- package/dist/src/lib/config.d.ts +16 -0
- package/dist/src/lib/config.js +41 -0
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/constants.d.ts +9 -0
- package/dist/src/lib/constants.js +9 -0
- package/dist/src/lib/constants.js.map +1 -1
- package/dist/src/lib/csv.d.ts +1 -2
- package/dist/src/lib/csv.js +3 -8
- package/dist/src/lib/csv.js.map +1 -1
- package/dist/src/lib/db-codegen/dbGenerator.d.ts +21 -65
- package/dist/src/lib/db-codegen/dbGenerator.js +117 -321
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/db-codegen/dbNaming.d.ts +37 -0
- package/dist/src/lib/db-codegen/dbNaming.js +70 -0
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +165 -5
- package/dist/src/lib/db-codegen/dbTemplates.js +292 -16
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +7 -3
- package/dist/src/lib/db-codegen/dbTsTypes.js +23 -1
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js +517 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +101 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +200 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
- package/dist/src/lib/generated-allowlist.js +43 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/init-config.js +2 -2
- package/dist/src/lib/init-config.js.map +1 -1
- package/dist/src/lib/output.d.ts +25 -5
- package/dist/src/lib/output.js +32 -4
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/query-operators.d.ts +43 -0
- package/dist/src/lib/query-operators.js +80 -0
- package/dist/src/lib/query-operators.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +68 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js +380 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
- package/dist/src/lib/swift-codegen/generator.d.ts +84 -0
- package/dist/src/lib/swift-codegen/generator.js +178 -0
- package/dist/src/lib/swift-codegen/generator.js.map +1 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +72 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js +644 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
- package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
- package/dist/src/lib/sync-resource-types.d.ts +225 -0
- package/dist/src/lib/sync-resource-types.js +394 -0
- package/dist/src/lib/sync-resource-types.js.map +1 -0
- package/dist/src/lib/toml-database-config.d.ts +10 -19
- package/dist/src/lib/toml-database-config.js +28 -59
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/toml-metadata-config.d.ts +147 -0
- package/dist/src/lib/toml-metadata-config.js +463 -0
- package/dist/src/lib/toml-metadata-config.js.map +1 -0
- package/dist/src/lib/toml-native-form.d.ts +46 -0
- package/dist/src/lib/toml-native-form.js +78 -0
- package/dist/src/lib/toml-native-form.js.map +1 -0
- package/dist/src/lib/toml-params-validator.d.ts +34 -0
- package/dist/src/lib/toml-params-validator.js +118 -3
- package/dist/src/lib/toml-params-validator.js.map +1 -1
- package/dist/src/lib/workflow-apply.d.ts +86 -0
- package/dist/src/lib/workflow-apply.js +127 -0
- package/dist/src/lib/workflow-apply.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generator.d.ts +87 -0
- package/dist/src/lib/workflow-codegen/generator.js +290 -0
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +85 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js +71 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
- package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
- package/dist/src/lib/workflow-codegen/naming.js +81 -0
- package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +64 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js +282 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
- package/dist/src/lib/workflow-fragments.js +3 -3
- package/dist/src/lib/workflow-fragments.js.map +1 -1
- package/dist/src/lib/workflow-payload.d.ts +68 -0
- package/dist/src/lib/workflow-payload.js +150 -0
- package/dist/src/lib/workflow-payload.js.map +1 -0
- package/dist/src/lib/workflow-toml-validator.d.ts +1 -1
- package/dist/src/lib/workflow-toml-validator.js +37 -1
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +11 -0
- package/dist/src/validators.d.ts +4 -3
- package/dist/src/validators.js +6 -5
- package/dist/src/validators.js.map +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared layout metadata for the per-entity resource types `sync pull` writes
|
|
3
|
+
* into a sync slot (issue #1659).
|
|
4
|
+
*
|
|
5
|
+
* `sync pull` writes one file per server entity and records what it wrote in
|
|
6
|
+
* `.primitive-sync.json` (`SyncState.entities[<slot>]`). Until #1659 it never
|
|
7
|
+
* removed a local file whose entity had disappeared server-side, so the next
|
|
8
|
+
* `sync push` — which treats local TOML as the source of truth — silently
|
|
9
|
+
* re-created the just-deleted entity.
|
|
10
|
+
*
|
|
11
|
+
* This module holds the narrow descriptor the prune pass and `sync diff` share:
|
|
12
|
+
* directory, extension, state slot, key→filename derivation, and the sidecar
|
|
13
|
+
* test-directory block type. The pull write loops deliberately stay as they are
|
|
14
|
+
* — this table is layout metadata, not a write framework.
|
|
15
|
+
*/
|
|
16
|
+
import { existsSync, rmSync, statSync, unlinkSync } from "fs";
|
|
17
|
+
import { dirname, join } from "path";
|
|
18
|
+
const tomlFile = (key) => `${key}.toml`;
|
|
19
|
+
/**
|
|
20
|
+
* Rule sets are keyed on disk (and in sync state) by their name with
|
|
21
|
+
* filesystem-hostile characters replaced. Shared by the pull write loop and the
|
|
22
|
+
* prune pass so the two can never derive a different key for the same rule set.
|
|
23
|
+
*/
|
|
24
|
+
export function ruleSetFileKey(ruleSet) {
|
|
25
|
+
return String(ruleSet.name || ruleSet.ruleSetId || "").replace(/[/\\:*?"<>|]/g, "_");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Every per-entity resource type in a sync slot. `app.toml` and `vars.toml` are
|
|
29
|
+
* root singletons, not per-entity directories, so they are not listed here —
|
|
30
|
+
* var removal is already handled within-file by `sync push` (`planVarsPush`).
|
|
31
|
+
*/
|
|
32
|
+
export const SYNC_RESOURCE_TYPES = [
|
|
33
|
+
{
|
|
34
|
+
label: "integration",
|
|
35
|
+
dir: "integrations",
|
|
36
|
+
ext: ".toml",
|
|
37
|
+
stateSlot: "integrations",
|
|
38
|
+
fileFromKey: tomlFile,
|
|
39
|
+
// `/admin/api/apps/{id}/integrations` paginates; pull drains it with fetchAll.
|
|
40
|
+
listingComplete: true,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
label: "webhook",
|
|
44
|
+
dir: "webhooks",
|
|
45
|
+
ext: ".toml",
|
|
46
|
+
stateSlot: "webhooks",
|
|
47
|
+
fileFromKey: tomlFile,
|
|
48
|
+
// `/admin/api/apps/{id}/webhooks` paginates; pull drains it with fetchAll.
|
|
49
|
+
listingComplete: true,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: "cron-trigger",
|
|
53
|
+
dir: "cron-triggers",
|
|
54
|
+
ext: ".toml",
|
|
55
|
+
stateSlot: "cronTriggers",
|
|
56
|
+
fileFromKey: tomlFile,
|
|
57
|
+
// `{ limit: 100 }`, no cursor, archived filtered after the query.
|
|
58
|
+
listingComplete: false,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: "blob-bucket",
|
|
62
|
+
dir: "blob-buckets",
|
|
63
|
+
ext: ".toml",
|
|
64
|
+
stateSlot: "blobBuckets",
|
|
65
|
+
fileFromKey: tomlFile,
|
|
66
|
+
// `queryByIndex("bucketsForApp")` — no cursor, one page.
|
|
67
|
+
listingComplete: false,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: "prompt",
|
|
71
|
+
dir: "prompts",
|
|
72
|
+
ext: ".toml",
|
|
73
|
+
stateSlot: "prompts",
|
|
74
|
+
fileFromKey: tomlFile,
|
|
75
|
+
testBlockType: "prompt",
|
|
76
|
+
// `/admin/api/apps/{id}/prompts` paginates; pull drains it with fetchAll.
|
|
77
|
+
listingComplete: true,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
label: "workflow",
|
|
81
|
+
dir: "workflows",
|
|
82
|
+
ext: ".toml",
|
|
83
|
+
stateSlot: "workflows",
|
|
84
|
+
fileFromKey: tomlFile,
|
|
85
|
+
testBlockType: "workflow",
|
|
86
|
+
// `/admin/api/apps/{id}/workflows` paginates; pull drains it with fetchAll.
|
|
87
|
+
listingComplete: true,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
// Rhai scripts: `.rhai` bodies, not TOML, with tests at
|
|
91
|
+
// `transforms/<name>.tests/`.
|
|
92
|
+
label: "transform",
|
|
93
|
+
dir: "transforms",
|
|
94
|
+
ext: ".rhai",
|
|
95
|
+
stateSlot: "scripts",
|
|
96
|
+
fileFromKey: (key) => `${key}.rhai`,
|
|
97
|
+
testBlockType: "script",
|
|
98
|
+
// `queryByIndex("scriptsByApp")` — no cursor, one page.
|
|
99
|
+
listingComplete: false,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
label: "database-type",
|
|
103
|
+
dir: "database-types",
|
|
104
|
+
ext: ".toml",
|
|
105
|
+
stateSlot: "databaseTypes",
|
|
106
|
+
fileFromKey: tomlFile,
|
|
107
|
+
// `queryByIndex("databaseTypeConfigsForApp")` — no cursor, one page.
|
|
108
|
+
listingComplete: false,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
// The state key is already the sanitized filename the write loop derives
|
|
112
|
+
// from the rule set's name (`name.replace(/[/\\:*?"<>|]/g, "_")`), so the
|
|
113
|
+
// filename is the key plus the extension.
|
|
114
|
+
label: "rule-set",
|
|
115
|
+
dir: "rule-sets",
|
|
116
|
+
ext: ".toml",
|
|
117
|
+
stateSlot: "ruleSets",
|
|
118
|
+
fileFromKey: tomlFile,
|
|
119
|
+
// `queryByIndex("ruleSetsForApp")` — no cursor, one page.
|
|
120
|
+
listingComplete: false,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
label: "group-type-config",
|
|
124
|
+
dir: "group-type-configs",
|
|
125
|
+
ext: ".toml",
|
|
126
|
+
stateSlot: "groupTypeConfigs",
|
|
127
|
+
fileFromKey: tomlFile,
|
|
128
|
+
// `queryByIndex("configsForApp")` — no cursor, one page.
|
|
129
|
+
listingComplete: false,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
label: "collection-type-config",
|
|
133
|
+
dir: "collection-type-configs",
|
|
134
|
+
ext: ".toml",
|
|
135
|
+
stateSlot: "collectionTypeConfigs",
|
|
136
|
+
fileFromKey: tomlFile,
|
|
137
|
+
// `queryByIndex("collectionConfigsForApp")` — no cursor, one page.
|
|
138
|
+
listingComplete: false,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
// State key is the `resourceType#category` pair; the file on disk is
|
|
142
|
+
// `resourceType.category.toml`.
|
|
143
|
+
label: "metadata-category-config",
|
|
144
|
+
dir: "metadata-category-configs",
|
|
145
|
+
ext: ".toml",
|
|
146
|
+
stateSlot: "metadataCategoryConfigs",
|
|
147
|
+
fileFromKey: (key) => `${key.replace("#", ".")}.toml`,
|
|
148
|
+
// `queryByIndex("metadataCategoriesForApp")` — no cursor, one page.
|
|
149
|
+
listingComplete: false,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
label: "email-template",
|
|
153
|
+
dir: "email-templates",
|
|
154
|
+
ext: ".toml",
|
|
155
|
+
stateSlot: "emailTemplates",
|
|
156
|
+
fileFromKey: tomlFile,
|
|
157
|
+
// `queryByIndex("templatesByApp")` — no cursor, one page.
|
|
158
|
+
listingComplete: false,
|
|
159
|
+
},
|
|
160
|
+
];
|
|
161
|
+
/** Generic try/catch wrapper for a server fetch, in the ok/error shape. */
|
|
162
|
+
export async function attemptFetch(fn) {
|
|
163
|
+
try {
|
|
164
|
+
return { ok: true, value: await fn() };
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
return { ok: false, error };
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* A filename must stay inside its type's directory. State is read from a file
|
|
172
|
+
* on disk, so a corrupt or hand-edited `.primitive-sync.json` must never be
|
|
173
|
+
* able to steer an `unlinkSync` outside the sync slot.
|
|
174
|
+
*/
|
|
175
|
+
export function isSafeSyncFilename(filename) {
|
|
176
|
+
if (!filename || filename === "." || filename === "..")
|
|
177
|
+
return false;
|
|
178
|
+
if (filename.includes("/") || filename.includes("\\"))
|
|
179
|
+
return false;
|
|
180
|
+
if (filename.includes("\0"))
|
|
181
|
+
return false;
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Decide which of a type's managed entity keys should have their local file
|
|
186
|
+
* removed, given the prior sync state and the outcome of this pull's fetch.
|
|
187
|
+
*
|
|
188
|
+
* A key is pruned iff it was **managed** (present in the prior
|
|
189
|
+
* `SyncState.entities[<slot>]`, so a previous pull wrote its file) and is
|
|
190
|
+
* **absent from the server keys** this pull fetched. A local file that was
|
|
191
|
+
* never in prior state was hand-authored — it is left alone and reported by
|
|
192
|
+
* `sync diff` as new.
|
|
193
|
+
*
|
|
194
|
+
* Pure and side-effect-free (the caller owns the `unlinkSync`) so the safety
|
|
195
|
+
* rules are unit-testable without a live server.
|
|
196
|
+
*/
|
|
197
|
+
export function planPrune(input) {
|
|
198
|
+
const { resourceType, priorKeys, presence, enabled } = input;
|
|
199
|
+
// Which managed keys the server did not list. Only meaningful when the fetch
|
|
200
|
+
// succeeded; on a failed fetch we know nothing and must not act.
|
|
201
|
+
const absentKeys = presence.ok
|
|
202
|
+
? priorKeys.filter((key) => !new Set(presence.serverKeys).has(key))
|
|
203
|
+
: [];
|
|
204
|
+
if (!enabled) {
|
|
205
|
+
return {
|
|
206
|
+
keys: [],
|
|
207
|
+
skipped: true,
|
|
208
|
+
skipReason: "disabled",
|
|
209
|
+
unsafeKeys: [],
|
|
210
|
+
unprunedAbsentKeys: absentKeys,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
if (!presence.ok) {
|
|
214
|
+
return {
|
|
215
|
+
keys: [],
|
|
216
|
+
skipped: true,
|
|
217
|
+
skipReason: "fetch-failed",
|
|
218
|
+
unsafeKeys: [],
|
|
219
|
+
unprunedAbsentKeys: [],
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
// A 200 is not a complete list. Deleting a file because a truncated listing
|
|
223
|
+
// omitted its entity is unrecoverable-looking to the operator (the entity is
|
|
224
|
+
// still live, so no later pull rewrites the file), which is worse than
|
|
225
|
+
// leaving a stale file behind. See `listingComplete`.
|
|
226
|
+
if (!resourceType.listingComplete) {
|
|
227
|
+
return {
|
|
228
|
+
keys: [],
|
|
229
|
+
skipped: true,
|
|
230
|
+
skipReason: "listing-incomplete",
|
|
231
|
+
unsafeKeys: [],
|
|
232
|
+
unprunedAbsentKeys: absentKeys,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
const keys = [];
|
|
236
|
+
const unsafeKeys = [];
|
|
237
|
+
for (const key of absentKeys) {
|
|
238
|
+
if (!isSafeSyncFilename(resourceType.fileFromKey(key))) {
|
|
239
|
+
unsafeKeys.push(key);
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
keys.push(key);
|
|
243
|
+
}
|
|
244
|
+
return { keys, skipped: false, unsafeKeys, unprunedAbsentKeys: [] };
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Copy prior state entries for entities the server listed but this pull did not
|
|
248
|
+
* write (e.g. a script with no active config, or an email template whose detail
|
|
249
|
+
* fetch failed). Without this the entity would drop out of the state slot and
|
|
250
|
+
* look hand-authored to the next pull, so its stale file could never be pruned.
|
|
251
|
+
*/
|
|
252
|
+
export function preserveUnwrittenEntries(written, prior, serverKeys) {
|
|
253
|
+
if (!prior)
|
|
254
|
+
return written;
|
|
255
|
+
for (const key of serverKeys) {
|
|
256
|
+
if (!(key in written) && key in prior) {
|
|
257
|
+
written[key] = prior[key];
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return written;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Best-effort check for uncommitted git changes at `path` (a file or a
|
|
264
|
+
* directory). Returns false when git isn't available, the path isn't in a
|
|
265
|
+
* repository, or anything else goes wrong — the caller treats "unknown" as
|
|
266
|
+
* "no local edits", so this never blocks on a non-git checkout.
|
|
267
|
+
*
|
|
268
|
+
* `path` is passed as an argument, never interpolated into a shell string:
|
|
269
|
+
* on the prune path its basename derives from a server entity name, and entity
|
|
270
|
+
* names are free-form (a rule set may legitimately be named ``a`b`` or `a$b`).
|
|
271
|
+
* `execFileSync` runs git directly with no shell, so no name can be read as
|
|
272
|
+
* a command.
|
|
273
|
+
*
|
|
274
|
+
* `includeUntracked` decides whether an untracked file counts as a change:
|
|
275
|
+
* - `true` (default) suits "am I about to overwrite something?" — `sync revert`
|
|
276
|
+
* would clobber an untracked file just the same.
|
|
277
|
+
* - `false` suits "did the operator edit this file?" — an untracked file is the
|
|
278
|
+
* ordinary state of a pulled file in a sync dir that was never committed, and
|
|
279
|
+
* is not evidence of a local edit.
|
|
280
|
+
*/
|
|
281
|
+
export async function hasUncommittedChanges(path, options = {}) {
|
|
282
|
+
const { includeUntracked = true } = options;
|
|
283
|
+
if (!existsSync(path))
|
|
284
|
+
return false;
|
|
285
|
+
try {
|
|
286
|
+
const { execFileSync } = await import("child_process");
|
|
287
|
+
// Run git from the path's own location, not the process cwd: the sync slot
|
|
288
|
+
// can sit in a different repository than the one the CLI was invoked from
|
|
289
|
+
// (or in none at all).
|
|
290
|
+
const cwd = statSync(path).isDirectory() ? path : dirname(path);
|
|
291
|
+
const args = ["status", "--porcelain"];
|
|
292
|
+
if (!includeUntracked)
|
|
293
|
+
args.push("-uno");
|
|
294
|
+
args.push("--", path);
|
|
295
|
+
const out = execFileSync("git", args, {
|
|
296
|
+
cwd,
|
|
297
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
298
|
+
encoding: "utf-8",
|
|
299
|
+
});
|
|
300
|
+
return out.trim().length > 0;
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* The phrase pull and diff both use for an entity that is no longer exported.
|
|
308
|
+
*
|
|
309
|
+
* The plan of record asked for "archived or deleted" on the assumption that
|
|
310
|
+
* archiving drops an entity from the export. It does not: the list endpoints
|
|
311
|
+
* filter by status only when `?status=` is passed and pull never passes it
|
|
312
|
+
* (`listAppPrompts`/`listAppIntegrations` in `src/admin-api.ts`; `fetchAll` in
|
|
313
|
+
* `cli/src/commands/sync.ts`). An archived entity stays in the export and its
|
|
314
|
+
* TOML is rewritten with `status = "archived"`, so it is never pruned. The only
|
|
315
|
+
* way to be absent from the export is to have been deleted.
|
|
316
|
+
*/
|
|
317
|
+
export const ABSENT_FROM_EXPORT = "absent from sync export (deleted on server)";
|
|
318
|
+
/** `sync diff` status for a local file whose managed entity is gone. */
|
|
319
|
+
export const LOCAL_ONLY_ABSENT = "local only (absent from export)";
|
|
320
|
+
/** `sync diff` status for a local file the operator authored themselves. */
|
|
321
|
+
export const LOCAL_ONLY_NEW = "local only";
|
|
322
|
+
/**
|
|
323
|
+
* Classify a local file that has no matching server entity (issue #1659).
|
|
324
|
+
*
|
|
325
|
+
* The two cases look identical on disk but mean opposite things. A key a prior
|
|
326
|
+
* pull managed means the entity was deleted server-side and this stale file
|
|
327
|
+
* will RE-create it on the next push. A key never pulled means the operator
|
|
328
|
+
* authored the file and push creating it is the intent.
|
|
329
|
+
*/
|
|
330
|
+
export function classifyLocalOnly(priorEntities, slot, key) {
|
|
331
|
+
const managed = (priorEntities?.[slot] ?? {});
|
|
332
|
+
return key in managed ? LOCAL_ONLY_ABSENT : LOCAL_ONLY_NEW;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Remove the local files for `keys` (as decided by `planPrune`), along with any
|
|
336
|
+
* sidecar `<key>.tests/` directory.
|
|
337
|
+
*
|
|
338
|
+
* A file with uncommitted git edits is kept and reported instead: the operator
|
|
339
|
+
* may be mid-way through authoring a change they meant to push. Everything
|
|
340
|
+
* removed here is recoverable from the pre-pull snapshot via `sync revert`.
|
|
341
|
+
*/
|
|
342
|
+
export async function applyPrune(options) {
|
|
343
|
+
const { configDir, resourceType, keys, testCaseEntities, logger } = options;
|
|
344
|
+
const log = logger ?? (() => { });
|
|
345
|
+
const result = {
|
|
346
|
+
prunedKeys: [],
|
|
347
|
+
removed: [],
|
|
348
|
+
keptWithLocalEdits: [],
|
|
349
|
+
removedTestCaseKeys: [],
|
|
350
|
+
};
|
|
351
|
+
for (const key of keys) {
|
|
352
|
+
const filename = resourceType.fileFromKey(key);
|
|
353
|
+
const relativePath = `${resourceType.dir}/${filename}`;
|
|
354
|
+
const filePath = join(configDir, resourceType.dir, filename);
|
|
355
|
+
if (!existsSync(filePath))
|
|
356
|
+
continue;
|
|
357
|
+
// Untracked does not mean edited: in a sync dir that was never committed
|
|
358
|
+
// (or in no repository at all) every pulled file is untracked, and counting
|
|
359
|
+
// that as a local edit would keep every stale file and leave #1659 unfixed.
|
|
360
|
+
if (await hasUncommittedChanges(filePath, { includeUntracked: false })) {
|
|
361
|
+
result.keptWithLocalEdits.push(key);
|
|
362
|
+
log(` Kept ${relativePath} — ${ABSENT_FROM_EXPORT} but the file has ` +
|
|
363
|
+
"uncommitted local edits; remove it yourself or re-create the entity on the server");
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
unlinkSync(filePath);
|
|
367
|
+
result.prunedKeys.push(key);
|
|
368
|
+
result.removed.push(relativePath);
|
|
369
|
+
log(` Removed ${relativePath} — ${ABSENT_FROM_EXPORT}`);
|
|
370
|
+
if (!resourceType.testBlockType)
|
|
371
|
+
continue;
|
|
372
|
+
// Sidecar tests: `<key>.tests/` holds the block's test-case TOMLs and their
|
|
373
|
+
// attachment directories. With the block gone there is nothing to run them
|
|
374
|
+
// against, so they go too — along with their sync-state records.
|
|
375
|
+
const testsDirName = `${key}.tests`;
|
|
376
|
+
const testsDir = join(configDir, resourceType.dir, testsDirName);
|
|
377
|
+
if (existsSync(testsDir) && isSafeSyncFilename(testsDirName)) {
|
|
378
|
+
rmSync(testsDir, { recursive: true, force: true });
|
|
379
|
+
result.removed.push(`${resourceType.dir}/${testsDirName}`);
|
|
380
|
+
log(` Removed ${resourceType.dir}/${testsDirName} — ${ABSENT_FROM_EXPORT}`);
|
|
381
|
+
}
|
|
382
|
+
if (testCaseEntities) {
|
|
383
|
+
for (const [stateKey, entry] of Object.entries(testCaseEntities)) {
|
|
384
|
+
if (entry?.blockType === resourceType.testBlockType &&
|
|
385
|
+
entry?.blockKey === key) {
|
|
386
|
+
delete testCaseEntities[stateKey];
|
|
387
|
+
result.removedTestCaseKeys.push(stateKey);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
return result;
|
|
393
|
+
}
|
|
394
|
+
//# sourceMappingURL=sync-resource-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-resource-types.js","sourceRoot":"","sources":["../../../src/lib/sync-resource-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,15 +14,18 @@
|
|
|
14
14
|
* form ("legacy") or nested-table form ("native") for each of
|
|
15
15
|
* `definition` and `params`. This drives form preservation on
|
|
16
16
|
* `sync pull`.
|
|
17
|
-
* 2. `canEmitNative()` — recursively check whether a JS value
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* 2. `canEmitNative()` — recursively check whether a JS value can be
|
|
18
|
+
* represented in TOML **without data loss**. Returns a reason string
|
|
19
|
+
* if not. Catches `null`/`undefined` (and arrays containing `null`),
|
|
20
|
+
* which every TOML serializer silently drops on write. Heterogeneous
|
|
21
|
+
* arrays are fine — the config round-trip uses `smol-toml` (TOML 1.0),
|
|
22
|
+
* which emits and re-parses them faithfully (issue #1450).
|
|
21
23
|
* 3. `buildDatabaseTypeTomlData()` — builds the JS object that we
|
|
22
|
-
* hand to `
|
|
24
|
+
* hand to `stringifyConfigToml`. Per operation, decides JSON-string vs
|
|
23
25
|
* native based on (existing form, can-emit, override mode).
|
|
24
26
|
*/
|
|
25
|
-
|
|
27
|
+
import { type FieldForm } from "./toml-native-form.js";
|
|
28
|
+
export { type FieldForm, classifyInlineFieldForm, canEmitNative, } from "./toml-native-form.js";
|
|
26
29
|
export interface OperationFormHints {
|
|
27
30
|
/** Map of op name → existing form for `definition`. Missing op = "default". */
|
|
28
31
|
definition: Map<string, FieldForm>;
|
|
@@ -39,18 +42,6 @@ export interface OperationFormHints {
|
|
|
39
42
|
* sub-header (native).
|
|
40
43
|
*/
|
|
41
44
|
export declare function detectExistingOperationForms(rawToml: string): OperationFormHints;
|
|
42
|
-
/**
|
|
43
|
-
* Recursively check whether a JS value can be safely serialized to TOML
|
|
44
|
-
* using `@iarna/toml`. Returns null if OK, a reason string otherwise.
|
|
45
|
-
*
|
|
46
|
-
* Things TOML can't represent (in `@iarna/toml`):
|
|
47
|
-
* - `null` (TOML has no null).
|
|
48
|
-
* - Arrays containing values of different "TOML types" (e.g. mixed
|
|
49
|
-
* string and number). Spec-wise TOML 1.0 actually allows this, but
|
|
50
|
-
* `@iarna/toml` is strict and throws.
|
|
51
|
-
* - `undefined` (different from null but equally not representable).
|
|
52
|
-
*/
|
|
53
|
-
export declare function canEmitNative(value: any): string | null;
|
|
54
45
|
/**
|
|
55
46
|
* Normalize a `params` value into a sorted array of
|
|
56
47
|
* `{ name, type, required, ... }` rows, suitable for emitting as
|
|
@@ -79,7 +70,7 @@ export interface BuildOptions {
|
|
|
79
70
|
subscriptions?: any[];
|
|
80
71
|
}
|
|
81
72
|
/**
|
|
82
|
-
* Build the JS object to pass to `
|
|
73
|
+
* Build the JS object to pass to `stringifyConfigToml` for a database-type
|
|
83
74
|
* config file. Per operation:
|
|
84
75
|
* - If the chosen form is "native" AND `definition` is TOML-emittable,
|
|
85
76
|
* emit `[operations.definition]` (nested table).
|
|
@@ -14,15 +14,24 @@
|
|
|
14
14
|
* form ("legacy") or nested-table form ("native") for each of
|
|
15
15
|
* `definition` and `params`. This drives form preservation on
|
|
16
16
|
* `sync pull`.
|
|
17
|
-
* 2. `canEmitNative()` — recursively check whether a JS value
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* 2. `canEmitNative()` — recursively check whether a JS value can be
|
|
18
|
+
* represented in TOML **without data loss**. Returns a reason string
|
|
19
|
+
* if not. Catches `null`/`undefined` (and arrays containing `null`),
|
|
20
|
+
* which every TOML serializer silently drops on write. Heterogeneous
|
|
21
|
+
* arrays are fine — the config round-trip uses `smol-toml` (TOML 1.0),
|
|
22
|
+
* which emits and re-parses them faithfully (issue #1450).
|
|
21
23
|
* 3. `buildDatabaseTypeTomlData()` — builds the JS object that we
|
|
22
|
-
* hand to `
|
|
24
|
+
* hand to `stringifyConfigToml`. Per operation, decides JSON-string vs
|
|
23
25
|
* native based on (existing form, can-emit, override mode).
|
|
24
26
|
*/
|
|
25
|
-
import
|
|
27
|
+
import { parseConfigToml } from "./config-toml.js";
|
|
28
|
+
import { serializeDeclaredAccessManifest } from "./toml-metadata-config.js";
|
|
29
|
+
import { classifyInlineFieldForm, canEmitNative, } from "./toml-native-form.js";
|
|
30
|
+
// `FieldForm`, `classifyInlineFieldForm`, and `canEmitNative` moved to the
|
|
31
|
+
// neutral `toml-native-form.ts` module (issue #1446) so workflow-schema
|
|
32
|
+
// serialization can share them without importing a database-specific module.
|
|
33
|
+
// Re-exported here so existing importers keep working.
|
|
34
|
+
export { classifyInlineFieldForm, canEmitNative, } from "./toml-native-form.js";
|
|
26
35
|
/**
|
|
27
36
|
* Inspect the raw TOML source for a database-type file and decide which
|
|
28
37
|
* form each operation's `definition`/`params` currently use.
|
|
@@ -98,10 +107,14 @@ export function detectExistingOperationForms(rawToml) {
|
|
|
98
107
|
current.name = nameMatch[1];
|
|
99
108
|
}
|
|
100
109
|
else if (key === "definition" && current.definition === null) {
|
|
101
|
-
|
|
110
|
+
// Distinguish the inline-table form (`definition = { ... }`) from the
|
|
111
|
+
// legacy JSON-string form (`definition = '...'`) so an inline author
|
|
112
|
+
// round-trips through native emission, not back to a JSON string
|
|
113
|
+
// (issue #1255).
|
|
114
|
+
current.definition = classifyInlineFieldForm(value);
|
|
102
115
|
}
|
|
103
116
|
else if (key === "params" && current.params === null) {
|
|
104
|
-
current.params =
|
|
117
|
+
current.params = classifyInlineFieldForm(value);
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
120
|
if (current)
|
|
@@ -118,55 +131,6 @@ export function detectExistingOperationForms(rawToml) {
|
|
|
118
131
|
}
|
|
119
132
|
return { definition, params };
|
|
120
133
|
}
|
|
121
|
-
/**
|
|
122
|
-
* Recursively check whether a JS value can be safely serialized to TOML
|
|
123
|
-
* using `@iarna/toml`. Returns null if OK, a reason string otherwise.
|
|
124
|
-
*
|
|
125
|
-
* Things TOML can't represent (in `@iarna/toml`):
|
|
126
|
-
* - `null` (TOML has no null).
|
|
127
|
-
* - Arrays containing values of different "TOML types" (e.g. mixed
|
|
128
|
-
* string and number). Spec-wise TOML 1.0 actually allows this, but
|
|
129
|
-
* `@iarna/toml` is strict and throws.
|
|
130
|
-
* - `undefined` (different from null but equally not representable).
|
|
131
|
-
*/
|
|
132
|
-
export function canEmitNative(value) {
|
|
133
|
-
if (value === null)
|
|
134
|
-
return "value is null";
|
|
135
|
-
if (value === undefined)
|
|
136
|
-
return "value is undefined";
|
|
137
|
-
if (Array.isArray(value)) {
|
|
138
|
-
if (value.length > 0) {
|
|
139
|
-
const types = new Set();
|
|
140
|
-
for (const item of value) {
|
|
141
|
-
if (item === null)
|
|
142
|
-
return "array contains null";
|
|
143
|
-
if (Array.isArray(item))
|
|
144
|
-
types.add("array");
|
|
145
|
-
else
|
|
146
|
-
types.add(typeof item);
|
|
147
|
-
}
|
|
148
|
-
if (types.size > 1) {
|
|
149
|
-
return `array contains mixed types (${[...types].sort().join(", ")})`;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
for (const item of value) {
|
|
153
|
-
const sub = canEmitNative(item);
|
|
154
|
-
if (sub)
|
|
155
|
-
return sub;
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
if (typeof value === "object") {
|
|
160
|
-
for (const v of Object.values(value)) {
|
|
161
|
-
const sub = canEmitNative(v);
|
|
162
|
-
if (sub)
|
|
163
|
-
return sub;
|
|
164
|
-
}
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
// primitives: string, number, boolean.
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
134
|
/**
|
|
171
135
|
* Normalize a `params` value into a sorted array of
|
|
172
136
|
* `{ name, type, required, ... }` rows, suitable for emitting as
|
|
@@ -197,7 +161,7 @@ export function normalizeParamsToArray(params) {
|
|
|
197
161
|
*/
|
|
198
162
|
const DEFAULT_FORM = "native";
|
|
199
163
|
/**
|
|
200
|
-
* Build the JS object to pass to `
|
|
164
|
+
* Build the JS object to pass to `stringifyConfigToml` for a database-type
|
|
201
165
|
* config file. Per operation:
|
|
202
166
|
* - If the chosen form is "native" AND `definition` is TOML-emittable,
|
|
203
167
|
* emit `[operations.definition]` (nested table).
|
|
@@ -252,7 +216,7 @@ export function buildDatabaseTypeTomlData(typeConfig, operations, ruleSetIdToNam
|
|
|
252
216
|
// headers (matches the round-2 plan-of-record CLI sync layout).
|
|
253
217
|
if (typeConfig.schema && typeof typeConfig.schema === "string") {
|
|
254
218
|
try {
|
|
255
|
-
const parsedSchema =
|
|
219
|
+
const parsedSchema = parseConfigToml(typeConfig.schema);
|
|
256
220
|
if (parsedSchema?.models) {
|
|
257
221
|
data.models = parsedSchema.models;
|
|
258
222
|
}
|
|
@@ -262,6 +226,11 @@ export function buildDatabaseTypeTomlData(typeConfig, operations, ruleSetIdToNam
|
|
|
262
226
|
// crash the serializer — fall through without the models block.
|
|
263
227
|
}
|
|
264
228
|
}
|
|
229
|
+
// Declared-access manifest (issue #1304, P-C): merge the top-level
|
|
230
|
+
// `[metadata]` + `secrets` fragments so a pull→push→pull cycle round-trips.
|
|
231
|
+
// Emitted before the operations-only early return so a type with a manifest
|
|
232
|
+
// but no operations still writes it.
|
|
233
|
+
Object.assign(data, serializeDeclaredAccessManifest(typeConfig.metadataManifest));
|
|
265
234
|
// Subscriptions (issue #803) — emitted as `[[subscriptions]]` array-of-
|
|
266
235
|
// tables, independent of operations. Built before the operations-only
|
|
267
236
|
// early return so a type with subscriptions but no operations still emits
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toml-database-config.js","sourceRoot":"","sources":["../../../src/lib/toml-database-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toml-database-config.js","sourceRoot":"","sources":["../../../src/lib/toml-database-config.ts"],"names":[],"mappings":"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"}
|