primitive-admin 1.0.55 → 1.0.57
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/assets/skill/skills/primitive-platform/SKILL.md +230 -2
- package/dist/bin/primitive.js +1 -1
- package/dist/src/commands/database-types.js +4 -4
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.js +5 -5
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.js +2 -2
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/guides.d.ts +15 -12
- package/dist/src/commands/guides.js +22 -15
- package/dist/src/commands/guides.js.map +1 -1
- package/dist/src/commands/metadata.js +48 -3
- package/dist/src/commands/metadata.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +18 -0
- package/dist/src/commands/scripts.js +59 -5
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +14 -4
- package/dist/src/commands/sync-app-settings.js +48 -8
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +100 -0
- package/dist/src/commands/sync.js +1578 -402
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/workflows.js +23 -6
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +27 -1
- package/dist/src/lib/api-client.js +25 -2
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.js +4 -0
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +21 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js +40 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
- package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
- package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +8 -5
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/db-codegen/dbNaming.d.ts +5 -0
- package/dist/src/lib/db-codegen/dbNaming.js +8 -2
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +17 -2
- package/dist/src/lib/db-codegen/dbTemplates.js +85 -40
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +13 -22
- package/dist/src/lib/db-codegen/dbTsTypes.js +33 -28
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -1
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +11 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +11 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +7 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/platform-owned.d.ts +37 -0
- package/dist/src/lib/platform-owned.js +46 -0
- package/dist/src/lib/platform-owned.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +32 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js +338 -36
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +1 -1
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js +1 -1
- package/dist/src/lib/swift-codegen/generator.d.ts +1 -0
- package/dist/src/lib/swift-codegen/generator.js +91 -3
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +90 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js +152 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
- package/dist/src/lib/sync-resource-types.d.ts +222 -10
- package/dist/src/lib/sync-resource-types.js +407 -20
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/template.d.ts +1 -1
- package/dist/src/lib/template.js +6 -3
- package/dist/src/lib/template.js.map +1 -1
- package/dist/src/lib/toml-metadata-config.js +18 -0
- package/dist/src/lib/toml-metadata-config.js.map +1 -1
- package/dist/src/lib/workflow-apply.js +12 -2
- package/dist/src/lib/workflow-apply.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generator.d.ts +9 -0
- package/dist/src/lib/workflow-codegen/generator.js +126 -55
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +6 -8
- package/dist/src/lib/workflow-codegen/invokerIR.js +8 -8
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
- package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +17 -1
- package/dist/src/lib/workflow-codegen/schemaToTs.js +59 -38
- package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -1
- package/dist/src/lib/workflow-payload.d.ts +19 -0
- package/dist/src/lib/workflow-payload.js +21 -0
- package/dist/src/lib/workflow-payload.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +30 -0
- package/dist/src/lib/workflow-toml-validator.js +206 -0
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -0
- package/package.json +2 -1
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
* test-directory block type. The pull write loops deliberately stay as they are
|
|
14
14
|
* — this table is layout metadata, not a write framework.
|
|
15
15
|
*/
|
|
16
|
-
import { existsSync, rmSync, statSync, unlinkSync } from "fs";
|
|
17
|
-
import { dirname, join } from "path";
|
|
16
|
+
import { existsSync, readFileSync, readdirSync, rmSync, statSync, unlinkSync } from "fs";
|
|
17
|
+
import { basename, dirname, join } from "path";
|
|
18
|
+
import { parseConfigToml } from "./config-toml.js";
|
|
18
19
|
const tomlFile = (key) => `${key}.toml`;
|
|
19
20
|
/**
|
|
20
21
|
* Rule sets are keyed on disk (and in sync state) by their name with
|
|
@@ -54,8 +55,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
54
55
|
ext: ".toml",
|
|
55
56
|
stateSlot: "cronTriggers",
|
|
56
57
|
fileFromKey: tomlFile,
|
|
57
|
-
//
|
|
58
|
-
listingComplete:
|
|
58
|
+
// Server drains `triggersByApp` and filters archived across the full set (#1668).
|
|
59
|
+
listingComplete: true,
|
|
59
60
|
},
|
|
60
61
|
{
|
|
61
62
|
label: "blob-bucket",
|
|
@@ -63,8 +64,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
63
64
|
ext: ".toml",
|
|
64
65
|
stateSlot: "blobBuckets",
|
|
65
66
|
fileFromKey: tomlFile,
|
|
66
|
-
// `
|
|
67
|
-
listingComplete:
|
|
67
|
+
// Server drains `bucketsForApp` across all pages (#1668).
|
|
68
|
+
listingComplete: true,
|
|
68
69
|
},
|
|
69
70
|
{
|
|
70
71
|
label: "prompt",
|
|
@@ -95,8 +96,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
95
96
|
stateSlot: "scripts",
|
|
96
97
|
fileFromKey: (key) => `${key}.rhai`,
|
|
97
98
|
testBlockType: "script",
|
|
98
|
-
// `
|
|
99
|
-
listingComplete:
|
|
99
|
+
// Server drains `scriptsByApp` across all pages (#1668).
|
|
100
|
+
listingComplete: true,
|
|
100
101
|
},
|
|
101
102
|
{
|
|
102
103
|
label: "database-type",
|
|
@@ -104,8 +105,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
104
105
|
ext: ".toml",
|
|
105
106
|
stateSlot: "databaseTypes",
|
|
106
107
|
fileFromKey: tomlFile,
|
|
107
|
-
// `
|
|
108
|
-
listingComplete:
|
|
108
|
+
// Server drains `databaseTypeConfigsForApp` across all pages (#1668).
|
|
109
|
+
listingComplete: true,
|
|
109
110
|
},
|
|
110
111
|
{
|
|
111
112
|
// The state key is already the sanitized filename the write loop derives
|
|
@@ -116,8 +117,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
116
117
|
ext: ".toml",
|
|
117
118
|
stateSlot: "ruleSets",
|
|
118
119
|
fileFromKey: tomlFile,
|
|
119
|
-
// `
|
|
120
|
-
listingComplete:
|
|
120
|
+
// Server drains `ruleSetsForApp` across all pages (#1668).
|
|
121
|
+
listingComplete: true,
|
|
121
122
|
},
|
|
122
123
|
{
|
|
123
124
|
label: "group-type-config",
|
|
@@ -125,8 +126,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
125
126
|
ext: ".toml",
|
|
126
127
|
stateSlot: "groupTypeConfigs",
|
|
127
128
|
fileFromKey: tomlFile,
|
|
128
|
-
// `
|
|
129
|
-
listingComplete:
|
|
129
|
+
// Server drains `configsForApp` across all pages (#1668).
|
|
130
|
+
listingComplete: true,
|
|
130
131
|
},
|
|
131
132
|
{
|
|
132
133
|
label: "collection-type-config",
|
|
@@ -134,8 +135,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
134
135
|
ext: ".toml",
|
|
135
136
|
stateSlot: "collectionTypeConfigs",
|
|
136
137
|
fileFromKey: tomlFile,
|
|
137
|
-
// `
|
|
138
|
-
listingComplete:
|
|
138
|
+
// Server drains `collectionConfigsForApp` across all pages (#1668).
|
|
139
|
+
listingComplete: true,
|
|
139
140
|
},
|
|
140
141
|
{
|
|
141
142
|
// State key is the `resourceType#category` pair; the file on disk is
|
|
@@ -145,8 +146,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
145
146
|
ext: ".toml",
|
|
146
147
|
stateSlot: "metadataCategoryConfigs",
|
|
147
148
|
fileFromKey: (key) => `${key.replace("#", ".")}.toml`,
|
|
148
|
-
// `
|
|
149
|
-
listingComplete:
|
|
149
|
+
// Server drains `metadataCategoriesForApp` across all pages (#1668).
|
|
150
|
+
listingComplete: true,
|
|
150
151
|
},
|
|
151
152
|
{
|
|
152
153
|
label: "email-template",
|
|
@@ -154,8 +155,13 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
154
155
|
ext: ".toml",
|
|
155
156
|
stateSlot: "emailTemplates",
|
|
156
157
|
fileFromKey: tomlFile,
|
|
157
|
-
// `
|
|
158
|
-
|
|
158
|
+
// Server drains `templatesByApp` across all pages (#1668). Independently
|
|
159
|
+
// safe (#1684): the email-template list is the fixed, bounded `EMAIL_TYPES`
|
|
160
|
+
// enum (`src/admin-api.ts`), fully returned every call with no pagination —
|
|
161
|
+
// so there is no version-skew hazard even against a pre-#1668 server.
|
|
162
|
+
// `planPrune` still prunes only MANAGED keys, so hand-authored files that
|
|
163
|
+
// were never pulled are left alone.
|
|
164
|
+
listingComplete: true,
|
|
159
165
|
},
|
|
160
166
|
];
|
|
161
167
|
/** Generic try/catch wrapper for a server fetch, in the ok/error shape. */
|
|
@@ -391,4 +397,385 @@ export async function applyPrune(options) {
|
|
|
391
397
|
}
|
|
392
398
|
return result;
|
|
393
399
|
}
|
|
400
|
+
/** Read `id` from an id-addressed slot's state entry. */
|
|
401
|
+
export const addressById = (_key, entry) => entry && typeof entry.id === "string" && entry.id ? entry.id : undefined;
|
|
402
|
+
/** Key-addressed slots are addressed by the state key itself. */
|
|
403
|
+
export const addressByKey = (key) => key || undefined;
|
|
404
|
+
/**
|
|
405
|
+
* Live modified timestamp used by the drift check. Most admin/app detail
|
|
406
|
+
* endpoints serialize `modifiedAt` at the top level (the same field `sync pull`
|
|
407
|
+
* records into state), with `updatedAt` as a defensive fallback. Two detail
|
|
408
|
+
* endpoints nest the entity under a wrapper key and need their own extractors
|
|
409
|
+
* below (`workflowPruneModifiedAt`, `emailTemplatePruneModifiedAt`) so the
|
|
410
|
+
* drift check reads the real timestamp instead of `undefined` — a top-level
|
|
411
|
+
* read there always looks like drift and blocks `--prune` without `--force`.
|
|
412
|
+
*/
|
|
413
|
+
export const pruneModifiedAt = (detail) => (detail && (detail.modifiedAt ?? detail.updatedAt)) || undefined;
|
|
414
|
+
/**
|
|
415
|
+
* Workflow detail-read extractor. `getWorkflow` (server `getAppWorkflow`,
|
|
416
|
+
* src/admin-api.ts) returns `{ workflow, draft, revisions, configs }` — the
|
|
417
|
+
* entity and its `modifiedAt` are nested under `workflow`, unlike every other
|
|
418
|
+
* detail endpoint. Read there, not the top level.
|
|
419
|
+
*/
|
|
420
|
+
export const workflowPruneModifiedAt = (detail) => pruneModifiedAt(detail && detail.workflow);
|
|
421
|
+
/**
|
|
422
|
+
* Email-template detail-read extractor. `getEmailTemplate` returns
|
|
423
|
+
* `{ emailType, label, hasOverride, override, default, variables }`; the
|
|
424
|
+
* editable copy `sync` manages — and its `modifiedAt` — live under `override`
|
|
425
|
+
* (null when there is no override). `sync pull` likewise records
|
|
426
|
+
* `template.override?.modifiedAt`, so the drift check must read the same path.
|
|
427
|
+
*/
|
|
428
|
+
export const emailTemplatePruneModifiedAt = (detail) => pruneModifiedAt(detail && detail.override);
|
|
429
|
+
/**
|
|
430
|
+
* Read a declared identity field (`[<section>].<field>`) from a managed TOML
|
|
431
|
+
* file. Returns `undefined` when the field is absent, empty, or the file cannot
|
|
432
|
+
* be parsed — callers fall back to the filename-derived key, matching the
|
|
433
|
+
* `<field> || basename(file)` convention every `sync push` parser uses.
|
|
434
|
+
*
|
|
435
|
+
* Parsed via `parseConfigToml` (not `parseTomlFile`): the identity fields
|
|
436
|
+
* pruning reads are author-declared top-level values, unaffected by the
|
|
437
|
+
* workflow-fragment expander, so this avoids depending on `commands/sync.ts`
|
|
438
|
+
* (which would be a circular import) while producing the same key push does.
|
|
439
|
+
*/
|
|
440
|
+
function declaredTomlKey(filePath, section, field) {
|
|
441
|
+
let parsed;
|
|
442
|
+
try {
|
|
443
|
+
parsed = parseConfigToml(readFileSync(filePath, "utf-8"));
|
|
444
|
+
}
|
|
445
|
+
catch {
|
|
446
|
+
return undefined;
|
|
447
|
+
}
|
|
448
|
+
const value = parsed && parsed[section] && parsed[section][field];
|
|
449
|
+
return typeof value === "string" && value ? value : undefined;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Build a `keyFromFile` for a TOML type whose entity key is declared at
|
|
453
|
+
* `[<section>].<field>`, falling back to the file basename (the exact key the
|
|
454
|
+
* matching `sync push` loop derives). This is what lets prune recognize an
|
|
455
|
+
* entity declared inside a **renamed** file and keep it out of the prune set,
|
|
456
|
+
* instead of deleting a remote entity that push just updated (issue #1655).
|
|
457
|
+
*/
|
|
458
|
+
function tomlDeclaredKeyFromFile(section, field) {
|
|
459
|
+
return (filePath) => declaredTomlKey(filePath, section, field) ?? basename(filePath, ".toml");
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* `keyFromFile` for types keyed purely by filename — Rhai transforms (the
|
|
463
|
+
* script `name` is the `.rhai` basename) and rule-sets (the state key is the
|
|
464
|
+
* sanitized basename). These have no in-file identity, so a rename genuinely
|
|
465
|
+
* changes the entity and the basename is the correct key.
|
|
466
|
+
*/
|
|
467
|
+
function basenameKeyFromFile(ext) {
|
|
468
|
+
return (filePath) => basename(filePath, ext);
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* `keyFromFile` for metadata-category-configs, whose key is the
|
|
472
|
+
* `resourceType#category` pair. Push reads `[metadataCategoryConfig]`
|
|
473
|
+
* `resourceType`/`category` and falls back to the filename
|
|
474
|
+
* (`resourceType.category.toml`, split on the first `.`).
|
|
475
|
+
*/
|
|
476
|
+
function metadataCategoryKeyFromFile(filePath) {
|
|
477
|
+
const resourceType = declaredTomlKey(filePath, "metadataCategoryConfig", "resourceType");
|
|
478
|
+
const category = declaredTomlKey(filePath, "metadataCategoryConfig", "category");
|
|
479
|
+
if (resourceType && category)
|
|
480
|
+
return `${resourceType}#${category}`;
|
|
481
|
+
const base = basename(filePath, ".toml");
|
|
482
|
+
const dot = base.indexOf(".");
|
|
483
|
+
if (dot > 0) {
|
|
484
|
+
return `${base.slice(0, dot)}#${base.slice(dot + 1)}`;
|
|
485
|
+
}
|
|
486
|
+
return base;
|
|
487
|
+
}
|
|
488
|
+
function pruneTypeFor(label) {
|
|
489
|
+
const found = SYNC_RESOURCE_TYPES.find((t) => t.label === label);
|
|
490
|
+
if (!found)
|
|
491
|
+
throw new Error(`no sync resource type '${label}'`);
|
|
492
|
+
return found;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Every resource type push-prune can retire. Id-addressed types (integrations,
|
|
496
|
+
* webhooks, cron-triggers, blob-buckets, prompts, workflows, transforms,
|
|
497
|
+
* rule-sets) fetch/delete by the stored id; key-addressed types (database-types,
|
|
498
|
+
* group-type-configs, collection-type-configs, email-templates) by the key.
|
|
499
|
+
*
|
|
500
|
+
* `--force` (the CLI's existing "override baseline drift" flag) only relaxes the
|
|
501
|
+
* drift check — it deliberately does NOT pass a server-side force flag on the
|
|
502
|
+
* delete, so each type's existing 409 dangling-ref guard stays active and a
|
|
503
|
+
* still-referenced entity is reported "blocked", not force-deleted.
|
|
504
|
+
*/
|
|
505
|
+
export const PUSH_PRUNE_SPECS = [
|
|
506
|
+
{
|
|
507
|
+
resourceType: pruneTypeFor("integration"),
|
|
508
|
+
keyFromFile: tomlDeclaredKeyFromFile("integration", "key"),
|
|
509
|
+
addressOf: addressById,
|
|
510
|
+
fetchDetail: (c, a, id) => c.getIntegration(a, id),
|
|
511
|
+
modifiedAtOf: pruneModifiedAt,
|
|
512
|
+
deleteEntity: async (c, a, id) => {
|
|
513
|
+
await c.deleteIntegration(a, id);
|
|
514
|
+
},
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
resourceType: pruneTypeFor("webhook"),
|
|
518
|
+
keyFromFile: tomlDeclaredKeyFromFile("webhook", "key"),
|
|
519
|
+
addressOf: addressById,
|
|
520
|
+
fetchDetail: (c, a, id) => c.getWebhook(a, id),
|
|
521
|
+
modifiedAtOf: pruneModifiedAt,
|
|
522
|
+
deleteEntity: async (c, a, id) => {
|
|
523
|
+
await c.deleteWebhook(a, id);
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
resourceType: pruneTypeFor("cron-trigger"),
|
|
528
|
+
keyFromFile: tomlDeclaredKeyFromFile("cronTrigger", "key"),
|
|
529
|
+
addressOf: addressById,
|
|
530
|
+
fetchDetail: (c, a, id) => c.getCronTrigger(a, id),
|
|
531
|
+
modifiedAtOf: pruneModifiedAt,
|
|
532
|
+
deleteEntity: async (c, a, id) => {
|
|
533
|
+
await c.deleteCronTrigger(a, id);
|
|
534
|
+
},
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
resourceType: pruneTypeFor("blob-bucket"),
|
|
538
|
+
keyFromFile: tomlDeclaredKeyFromFile("bucket", "key"),
|
|
539
|
+
addressOf: addressById,
|
|
540
|
+
fetchDetail: (c, a, id) => c.getBlobBucket(a, id),
|
|
541
|
+
modifiedAtOf: pruneModifiedAt,
|
|
542
|
+
deleteEntity: async (c, a, id) => {
|
|
543
|
+
await c.deleteBlobBucket(a, id);
|
|
544
|
+
},
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
resourceType: pruneTypeFor("prompt"),
|
|
548
|
+
keyFromFile: tomlDeclaredKeyFromFile("prompt", "key"),
|
|
549
|
+
addressOf: addressById,
|
|
550
|
+
fetchDetail: (c, a, id) => c.getPrompt(a, id),
|
|
551
|
+
modifiedAtOf: pruneModifiedAt,
|
|
552
|
+
deleteEntity: async (c, a, id) => {
|
|
553
|
+
await c.deletePrompt(a, id);
|
|
554
|
+
},
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
resourceType: pruneTypeFor("workflow"),
|
|
558
|
+
keyFromFile: tomlDeclaredKeyFromFile("workflow", "key"),
|
|
559
|
+
addressOf: addressById,
|
|
560
|
+
fetchDetail: (c, a, id) => c.getWorkflow(a, id),
|
|
561
|
+
// `getWorkflow` nests the entity (and modifiedAt) under `workflow`.
|
|
562
|
+
modifiedAtOf: workflowPruneModifiedAt,
|
|
563
|
+
deleteEntity: async (c, a, id) => {
|
|
564
|
+
await c.deleteWorkflow(a, id);
|
|
565
|
+
},
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
resourceType: pruneTypeFor("transform"),
|
|
569
|
+
// Rhai scripts are keyed by the `.rhai` basename — no in-file identity.
|
|
570
|
+
keyFromFile: basenameKeyFromFile(".rhai"),
|
|
571
|
+
addressOf: addressById,
|
|
572
|
+
fetchDetail: (c, a, id) => c.getScript(a, id),
|
|
573
|
+
modifiedAtOf: pruneModifiedAt,
|
|
574
|
+
deleteEntity: async (c, a, id) => {
|
|
575
|
+
await c.deleteScript(a, id);
|
|
576
|
+
},
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
resourceType: pruneTypeFor("rule-set"),
|
|
580
|
+
// Rule sets are keyed by the sanitized basename — no in-file identity.
|
|
581
|
+
keyFromFile: basenameKeyFromFile(".toml"),
|
|
582
|
+
addressOf: addressById,
|
|
583
|
+
fetchDetail: (c, a, id) => c.getRuleSet(a, id),
|
|
584
|
+
modifiedAtOf: pruneModifiedAt,
|
|
585
|
+
deleteEntity: async (c, a, id) => {
|
|
586
|
+
await c.deleteRuleSet(a, id);
|
|
587
|
+
},
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
resourceType: pruneTypeFor("database-type"),
|
|
591
|
+
keyFromFile: tomlDeclaredKeyFromFile("type", "databaseType"),
|
|
592
|
+
addressOf: addressByKey,
|
|
593
|
+
fetchDetail: (c, a, key) => c.getDatabaseTypeConfig(a, key),
|
|
594
|
+
modifiedAtOf: pruneModifiedAt,
|
|
595
|
+
// No server-side force: the type's 409 dangling-ref guard must stay active.
|
|
596
|
+
deleteEntity: async (c, a, key) => {
|
|
597
|
+
await c.deleteDatabaseTypeConfig(a, key);
|
|
598
|
+
},
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
resourceType: pruneTypeFor("group-type-config"),
|
|
602
|
+
keyFromFile: tomlDeclaredKeyFromFile("groupTypeConfig", "groupType"),
|
|
603
|
+
addressOf: addressByKey,
|
|
604
|
+
fetchDetail: (c, a, key) => c.getGroupTypeConfig(a, key),
|
|
605
|
+
modifiedAtOf: pruneModifiedAt,
|
|
606
|
+
deleteEntity: async (c, a, key) => {
|
|
607
|
+
await c.deleteGroupTypeConfig(a, key);
|
|
608
|
+
},
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
resourceType: pruneTypeFor("collection-type-config"),
|
|
612
|
+
keyFromFile: tomlDeclaredKeyFromFile("collectionTypeConfig", "collectionType"),
|
|
613
|
+
addressOf: addressByKey,
|
|
614
|
+
fetchDetail: (c, a, key) => c.getCollectionTypeConfig(a, key),
|
|
615
|
+
modifiedAtOf: pruneModifiedAt,
|
|
616
|
+
deleteEntity: async (c, a, key) => {
|
|
617
|
+
await c.deleteCollectionTypeConfig(a, key);
|
|
618
|
+
},
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
resourceType: pruneTypeFor("email-template"),
|
|
622
|
+
keyFromFile: tomlDeclaredKeyFromFile("template", "emailType"),
|
|
623
|
+
addressOf: addressByKey,
|
|
624
|
+
fetchDetail: (c, a, key) => c.getEmailTemplate(a, key),
|
|
625
|
+
// `getEmailTemplate` nests the managed override (and modifiedAt) under `override`.
|
|
626
|
+
modifiedAtOf: emailTemplatePruneModifiedAt,
|
|
627
|
+
deleteEntity: async (c, a, key) => {
|
|
628
|
+
await c.deleteEmailTemplate(a, key);
|
|
629
|
+
},
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
// #1426 owns the config-delete admin-client wrapper; `deleteResourceMetadata`
|
|
633
|
+
// is a metadata-*value* delete, not a config delete. Until then a candidate
|
|
634
|
+
// of this type is reported "no delete surface yet (#1426)", never deleted.
|
|
635
|
+
resourceType: pruneTypeFor("metadata-category-config"),
|
|
636
|
+
keyFromFile: metadataCategoryKeyFromFile,
|
|
637
|
+
addressOf: addressByKey,
|
|
638
|
+
fetchDetail: (c, a, key) => {
|
|
639
|
+
// The state key is the `resourceType#category` pair; the getter is
|
|
640
|
+
// path-addressed by both. (Never actually called — `deleteEntity` is null,
|
|
641
|
+
// so a candidate short-circuits to "unsupported" before any fetch.)
|
|
642
|
+
const [resourceType, category] = key.split("#");
|
|
643
|
+
return c.getMetadataCategoryConfig(a, resourceType, category);
|
|
644
|
+
},
|
|
645
|
+
modifiedAtOf: pruneModifiedAt,
|
|
646
|
+
deleteEntity: null,
|
|
647
|
+
},
|
|
648
|
+
];
|
|
649
|
+
/**
|
|
650
|
+
* The set of entity keys the local managed files of a type declare — collected
|
|
651
|
+
* the way `sync push` derives keys: parse every file in the type's directory
|
|
652
|
+
* and read its declared identity (`<in-file key> || basename`), NOT by assuming
|
|
653
|
+
* the file lives at its canonical `<key>.toml` path.
|
|
654
|
+
*
|
|
655
|
+
* This is the crux of the #1655 destructive-delete fix. `sync push` accepts a
|
|
656
|
+
* managed file at a **noncanonical filename** (e.g. `prompts/custom.toml` with
|
|
657
|
+
* `prompt.key = "greeting"`) and still updates the `greeting` entity. Collecting
|
|
658
|
+
* declared keys — rather than checking whether `greeting.toml` exists — means a
|
|
659
|
+
* renamed-but-same-key file keeps its entity out of the prune set, so prune
|
|
660
|
+
* never deletes an entity push just updated.
|
|
661
|
+
*/
|
|
662
|
+
export function collectLocalDeclaredKeys(input) {
|
|
663
|
+
const { spec, configDir } = input;
|
|
664
|
+
const dirPath = join(configDir, spec.resourceType.dir);
|
|
665
|
+
const keys = new Set();
|
|
666
|
+
if (!existsSync(dirPath))
|
|
667
|
+
return keys;
|
|
668
|
+
for (const file of readdirSync(dirPath)) {
|
|
669
|
+
if (!file.endsWith(spec.resourceType.ext))
|
|
670
|
+
continue;
|
|
671
|
+
const key = spec.keyFromFile(join(dirPath, file));
|
|
672
|
+
if (key)
|
|
673
|
+
keys.add(key);
|
|
674
|
+
}
|
|
675
|
+
return keys;
|
|
676
|
+
}
|
|
677
|
+
/**
|
|
678
|
+
* A managed entity whose local declaration is gone — a candidate for
|
|
679
|
+
* server-side deletion. Pure and side-effect-free: computed from the prior sync
|
|
680
|
+
* state and the filesystem only (no server call), so it is immune to listing
|
|
681
|
+
* truncation.
|
|
682
|
+
*
|
|
683
|
+
* A key is a candidate iff it was in the prior state slot (a prior pull managed
|
|
684
|
+
* it) AND **no** local file in the type's directory declares that key (via
|
|
685
|
+
* {@link collectLocalDeclaredKeys}, mirroring how `sync push` derives keys). A
|
|
686
|
+
* key still declared by some file — even one renamed away from the canonical
|
|
687
|
+
* `<key>.toml` path — is left alone, since `sync push` would update it, not
|
|
688
|
+
* delete it (issue #1655). A file whose key was never in prior state was
|
|
689
|
+
* hand-authored and is left for `sync push` to create; it is never a candidate.
|
|
690
|
+
*/
|
|
691
|
+
export function collectPushPruneCandidates(input) {
|
|
692
|
+
const { spec, configDir, priorEntities } = input;
|
|
693
|
+
if (!priorEntities)
|
|
694
|
+
return [];
|
|
695
|
+
const localKeys = collectLocalDeclaredKeys({ spec, configDir });
|
|
696
|
+
const candidates = [];
|
|
697
|
+
for (const [key, entry] of Object.entries(priorEntities)) {
|
|
698
|
+
if (!localKeys.has(key)) {
|
|
699
|
+
candidates.push({ key, entry });
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
return candidates;
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Decide what to do with one prune candidate, given the point read's outcome.
|
|
706
|
+
* Pure so the safety rules are unit-testable without a live server.
|
|
707
|
+
*
|
|
708
|
+
* Fail-closed throughout: a candidate is deleted ONLY on a successful read whose
|
|
709
|
+
* live `modifiedAt` matches prior state (or under `--force`). A 404 means the
|
|
710
|
+
* work is already done (drop the stale state). Any other read failure, a missing
|
|
711
|
+
* address, or a type without a delete surface leaves everything untouched.
|
|
712
|
+
*/
|
|
713
|
+
export function decidePushPruneCandidate(input) {
|
|
714
|
+
const { spec, address, priorModifiedAt, fetch: fetchOutcome, force } = input;
|
|
715
|
+
if (!address)
|
|
716
|
+
return { action: "skip", reason: "no-id" };
|
|
717
|
+
if (!spec.deleteEntity)
|
|
718
|
+
return { action: "skip", reason: "unsupported" };
|
|
719
|
+
if (fetchOutcome.ok) {
|
|
720
|
+
const serverModifiedAt = spec.modifiedAtOf(fetchOutcome.detail);
|
|
721
|
+
const unchanged = !!priorModifiedAt &&
|
|
722
|
+
!!serverModifiedAt &&
|
|
723
|
+
serverModifiedAt === priorModifiedAt;
|
|
724
|
+
if (force || unchanged) {
|
|
725
|
+
return { action: "delete", address, serverModifiedAt };
|
|
726
|
+
}
|
|
727
|
+
return { action: "skip", reason: "drift", serverModifiedAt };
|
|
728
|
+
}
|
|
729
|
+
// Fetch failed: a 404 means already gone (drop stale state); any other error
|
|
730
|
+
// means presence could not be confirmed — leave everything intact.
|
|
731
|
+
if (fetchOutcome.status === 404)
|
|
732
|
+
return { action: "drop-state" };
|
|
733
|
+
return { action: "skip", reason: "unconfirmed" };
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Remove a pruned block's sidecar `<key>.tests/` directory and its
|
|
737
|
+
* `entities.testCases` state records. The main file is already gone (that is
|
|
738
|
+
* what made this a prune candidate), so `applyPrune` above — which bails when
|
|
739
|
+
* the main file is absent — does not clean the sidecar; this does.
|
|
740
|
+
*/
|
|
741
|
+
export function removePrunedSidecar(options) {
|
|
742
|
+
const { configDir, resourceType, key, testCaseEntities, logger } = options;
|
|
743
|
+
const log = logger ?? (() => { });
|
|
744
|
+
const removed = [];
|
|
745
|
+
const removedTestCaseKeys = [];
|
|
746
|
+
if (!resourceType.testBlockType)
|
|
747
|
+
return { removed, removedTestCaseKeys };
|
|
748
|
+
const testsDirName = `${key}.tests`;
|
|
749
|
+
const testsDir = join(configDir, resourceType.dir, testsDirName);
|
|
750
|
+
if (existsSync(testsDir) && isSafeSyncFilename(testsDirName)) {
|
|
751
|
+
rmSync(testsDir, { recursive: true, force: true });
|
|
752
|
+
removed.push(`${resourceType.dir}/${testsDirName}`);
|
|
753
|
+
log(` Removed orphaned ${resourceType.dir}/${testsDirName}`);
|
|
754
|
+
}
|
|
755
|
+
if (testCaseEntities) {
|
|
756
|
+
for (const [stateKey, entry] of Object.entries(testCaseEntities)) {
|
|
757
|
+
if (entry?.blockType === resourceType.testBlockType &&
|
|
758
|
+
entry?.blockKey === key) {
|
|
759
|
+
delete testCaseEntities[stateKey];
|
|
760
|
+
removedTestCaseKeys.push(stateKey);
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
return { removed, removedTestCaseKeys };
|
|
765
|
+
}
|
|
766
|
+
/** `sync diff` status for a managed remote entity whose local file is gone. */
|
|
767
|
+
export const REMOTE_ONLY_WILL_DELETE = "remote only (will delete with push --prune)";
|
|
768
|
+
/** `sync diff` status for a server entity that was never synced (hand-created). */
|
|
769
|
+
export const REMOTE_ONLY_UNMANAGED = "remote only (left alone)";
|
|
770
|
+
/**
|
|
771
|
+
* Classify a "remote only" entity (present server-side, no local file) for
|
|
772
|
+
* `sync diff` (issue #1655). A key the prior pull managed means the operator
|
|
773
|
+
* deleted its local file and `push --prune` will delete the remote entity; a key
|
|
774
|
+
* never synced was authored on the server and is left alone. Prior sync state is
|
|
775
|
+
* the discriminator, exactly as it is for the local-only / pull-prune split.
|
|
776
|
+
*/
|
|
777
|
+
export function classifyRemoteOnly(priorEntities, slot, key) {
|
|
778
|
+
const managed = (priorEntities?.[slot] ?? {});
|
|
779
|
+
return key in managed ? REMOTE_ONLY_WILL_DELETE : REMOTE_ONLY_UNMANAGED;
|
|
780
|
+
}
|
|
394
781
|
//# sourceMappingURL=sync-resource-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-resource-types.js","sourceRoot":"","sources":["../../../src/lib/sync-resource-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-resource-types.js","sourceRoot":"","sources":["../../../src/lib/sync-resource-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const IOS_TEMPLATE_URL = "https://api.github.com/repos/Primitive-Labs/primitive-
|
|
1
|
+
declare const IOS_TEMPLATE_URL = "https://api.github.com/repos/Primitive-Labs/primitive-swift-template/tarball/main";
|
|
2
2
|
export interface PrepareTemplateOptions {
|
|
3
3
|
templateUrl?: string;
|
|
4
4
|
onProgress?: (status: string) => void;
|
package/dist/src/lib/template.js
CHANGED
|
@@ -3,8 +3,11 @@ import { join } from "path";
|
|
|
3
3
|
import { tmpdir } from "os";
|
|
4
4
|
import * as tar from "tar";
|
|
5
5
|
import { PRODUCTION_SERVER_URL } from "./constants.js";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
// Mirror repos pushed from this monorepo at publish time:
|
|
7
|
+
// templates/primitive-vue-template via scripts/sync-vue-template.mjs, and
|
|
8
|
+
// templates/primitive-swift-template via scripts/publish-swift-packages.sh.
|
|
9
|
+
const TEMPLATE_URL = "https://github.com/Primitive-Labs/primitive-vue-template/archive/refs/heads/main.tar.gz";
|
|
10
|
+
const IOS_TEMPLATE_URL = "https://api.github.com/repos/Primitive-Labs/primitive-swift-template/tarball/main";
|
|
8
11
|
const DOWNLOAD_TIMEOUT_MS = 30000; // 30 seconds
|
|
9
12
|
/**
|
|
10
13
|
* Tries to get a GitHub token from the gh CLI for authenticated downloads.
|
|
@@ -85,7 +88,7 @@ export async function prepareTemplate(options = {}) {
|
|
|
85
88
|
cwd: extractRoot,
|
|
86
89
|
});
|
|
87
90
|
rmSync(tempTarPath);
|
|
88
|
-
// Find the extracted directory (e.g., "primitive-
|
|
91
|
+
// Find the extracted directory (e.g., "primitive-vue-template-main")
|
|
89
92
|
const extractedItems = readdirSync(extractRoot);
|
|
90
93
|
if (extractedItems.length !== 1) {
|
|
91
94
|
throw new Error(`Unexpected template structure: expected 1 directory, found ${extractedItems.length}`);
|