primitive-admin 1.0.54 → 1.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/assets/skill/skills/primitive-platform/SKILL.md +230 -2
  2. package/dist/bin/primitive.js +3 -1
  3. package/dist/bin/primitive.js.map +1 -1
  4. package/dist/src/commands/apps.js +54 -2
  5. package/dist/src/commands/apps.js.map +1 -1
  6. package/dist/src/commands/database-types.js +4 -4
  7. package/dist/src/commands/database-types.js.map +1 -1
  8. package/dist/src/commands/databases.js +35 -14
  9. package/dist/src/commands/databases.js.map +1 -1
  10. package/dist/src/commands/documents.js +77 -0
  11. package/dist/src/commands/documents.js.map +1 -1
  12. package/dist/src/commands/guides.d.ts +15 -12
  13. package/dist/src/commands/guides.js +22 -15
  14. package/dist/src/commands/guides.js.map +1 -1
  15. package/dist/src/commands/metadata.js +48 -3
  16. package/dist/src/commands/metadata.js.map +1 -1
  17. package/dist/src/commands/scripts.d.ts +18 -0
  18. package/dist/src/commands/scripts.js +59 -5
  19. package/dist/src/commands/scripts.js.map +1 -1
  20. package/dist/src/commands/settings.d.ts +15 -0
  21. package/dist/src/commands/settings.js +102 -0
  22. package/dist/src/commands/settings.js.map +1 -0
  23. package/dist/src/commands/sync-app-settings.d.ts +115 -0
  24. package/dist/src/commands/sync-app-settings.js +379 -0
  25. package/dist/src/commands/sync-app-settings.js.map +1 -0
  26. package/dist/src/commands/sync.d.ts +134 -19
  27. package/dist/src/commands/sync.js +1949 -600
  28. package/dist/src/commands/sync.js.map +1 -1
  29. package/dist/src/commands/workflows.js +54 -15
  30. package/dist/src/commands/workflows.js.map +1 -1
  31. package/dist/src/lib/api-client.d.ts +29 -1
  32. package/dist/src/lib/api-client.js +31 -2
  33. package/dist/src/lib/api-client.js.map +1 -1
  34. package/dist/src/lib/app-settings-descriptor.d.ts +108 -0
  35. package/dist/src/lib/app-settings-descriptor.js +254 -0
  36. package/dist/src/lib/app-settings-descriptor.js.map +1 -0
  37. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +36 -0
  38. package/dist/src/lib/codegen-shared/generatedFiles.js +67 -10
  39. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
  40. package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
  41. package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
  42. package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
  43. package/dist/src/lib/db-codegen/dbGenerator.d.ts +11 -83
  44. package/dist/src/lib/db-codegen/dbGenerator.js +96 -556
  45. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
  46. package/dist/src/lib/db-codegen/dbNaming.d.ts +20 -7
  47. package/dist/src/lib/db-codegen/dbNaming.js +31 -13
  48. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
  49. package/dist/src/lib/db-codegen/dbTemplates.d.ts +70 -4
  50. package/dist/src/lib/db-codegen/dbTemplates.js +244 -70
  51. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
  52. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +13 -22
  53. package/dist/src/lib/db-codegen/dbTsTypes.js +33 -28
  54. package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -1
  55. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
  56. package/dist/src/lib/db-codegen/dbTypeIR.js +517 -0
  57. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
  58. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
  59. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
  60. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
  61. package/dist/src/lib/generated-allowlist.js +7 -0
  62. package/dist/src/lib/generated-allowlist.js.map +1 -1
  63. package/dist/src/lib/platform-owned.d.ts +37 -0
  64. package/dist/src/lib/platform-owned.js +46 -0
  65. package/dist/src/lib/platform-owned.js.map +1 -0
  66. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +100 -0
  67. package/dist/src/lib/swift-codegen/dbGenerator.js +682 -0
  68. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
  69. package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
  70. package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
  71. package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
  72. package/dist/src/lib/swift-codegen/generator.d.ts +85 -0
  73. package/dist/src/lib/swift-codegen/generator.js +266 -0
  74. package/dist/src/lib/swift-codegen/generator.js.map +1 -0
  75. package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +72 -0
  76. package/dist/src/lib/swift-codegen/schemaToSwift.js +644 -0
  77. package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
  78. package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +90 -0
  79. package/dist/src/lib/swift-codegen/siblingSymbols.js +152 -0
  80. package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
  81. package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
  82. package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
  83. package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
  84. package/dist/src/lib/sync-resource-types.d.ts +437 -0
  85. package/dist/src/lib/sync-resource-types.js +781 -0
  86. package/dist/src/lib/sync-resource-types.js.map +1 -0
  87. package/dist/src/lib/template.d.ts +1 -1
  88. package/dist/src/lib/template.js +6 -3
  89. package/dist/src/lib/template.js.map +1 -1
  90. package/dist/src/lib/toml-metadata-config.js +18 -0
  91. package/dist/src/lib/toml-metadata-config.js.map +1 -1
  92. package/dist/src/lib/workflow-apply.js +12 -2
  93. package/dist/src/lib/workflow-apply.js.map +1 -1
  94. package/dist/src/lib/workflow-codegen/generator.d.ts +27 -5
  95. package/dist/src/lib/workflow-codegen/generator.js +214 -68
  96. package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
  97. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +83 -0
  98. package/dist/src/lib/workflow-codegen/invokerIR.js +71 -0
  99. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
  100. package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +17 -1
  101. package/dist/src/lib/workflow-codegen/schemaToTs.js +59 -38
  102. package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -1
  103. package/dist/src/lib/workflow-payload.d.ts +19 -0
  104. package/dist/src/lib/workflow-payload.js +21 -0
  105. package/dist/src/lib/workflow-payload.js.map +1 -1
  106. package/dist/src/lib/workflow-toml-validator.d.ts +30 -0
  107. package/dist/src/lib/workflow-toml-validator.js +206 -0
  108. package/dist/src/lib/workflow-toml-validator.js.map +1 -1
  109. package/dist/src/types/index.d.ts +1 -0
  110. package/package.json +5 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaToSwift.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/schemaToSwift.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Retained-sibling collision detection for filtered Swift codegen runs
3
+ * (issue #1653, class 3a for `--single` runs).
4
+ *
5
+ * A `singleType` / `singleWorkflow` run renders ONLY the selected input, but its
6
+ * sibling `.generated.swift` files stay on disk (they are deliberately retained
7
+ * — orphan cleanup is scoped to the filtered file). Those siblings never enter
8
+ * the run-scoped in-memory registry, which sees only `options.inputs`, so a
9
+ * symbol the filtered run emits could still redeclare against a sibling once all
10
+ * files compile into one module.
11
+ *
12
+ * The cross-generator foreign-banner write guard does NOT cover this: siblings
13
+ * carry the SAME ownership banner and a DIFFERENT filename, so there is neither a
14
+ * path collision nor a foreign banner to trip. This module closes that gap by
15
+ * re-deriving each retained sibling's declared top-level symbols directly from
16
+ * the file on disk and comparing them against the run's emitted symbols — no
17
+ * persistent symbol manifest (sponsor decision #1 reserved that for a follow-up).
18
+ */
19
+ /** Parse the module-level Swift symbols declared in a generated file's source. */
20
+ export declare function parseTopLevelSwiftSymbols(content: string): string[];
21
+ /**
22
+ * Map each retained sibling's declared top-level symbol → the sibling's file
23
+ * stem (its owner). Only generator-owned files (content starts with
24
+ * `ownershipBanner`) are considered; the run's own output paths are excluded so
25
+ * a filtered re-run never collides with the file it is about to rewrite. On the
26
+ * first sibling that declares a symbol, that sibling wins (deterministic by
27
+ * directory-read order).
28
+ */
29
+ export declare function collectRetainedSiblingSymbols(opts: {
30
+ outputDir: string;
31
+ ownershipBanner: string;
32
+ suffix: string;
33
+ excludePaths: Iterable<string>;
34
+ }): Promise<Map<string, string>>;
35
+ /**
36
+ * Throw if any symbol this filtered run emits collides with a retained sibling
37
+ * already on disk. `emitted` maps symbol → the emitting input's owner key; a
38
+ * sibling owning the SAME symbol under a DIFFERENT stem is a redeclaration. The
39
+ * caller supplies `makeError` so the shared module stays free of the Swift
40
+ * error type.
41
+ */
42
+ export declare function assertNoRetainedSiblingCollision(opts: {
43
+ outputDir: string;
44
+ ownershipBanner: string;
45
+ suffix: string;
46
+ emitted: Map<string, string>;
47
+ ownPaths: Iterable<string>;
48
+ makeError: (info: {
49
+ symbol: string;
50
+ owner: string;
51
+ siblingStem: string;
52
+ }) => Error;
53
+ }): Promise<void>;
54
+ /**
55
+ * Throw if any symbol this run emits collides with a top-level symbol declared
56
+ * by a file owned by ANOTHER generator (a DIFFERENT ownership banner) in the
57
+ * same output dir (issue #1857).
58
+ *
59
+ * The same-banner retained-sibling guard above and the foreign-banner WRITE
60
+ * guard both miss this class. When database and workflow Swift codegen share an
61
+ * output dir, a database type `foo-input` emits `public enum FooInput` in
62
+ * `foo-input.generated.swift`, while workflow `foo` emits a top-level struct
63
+ * `FooInput` in `foo.generated.swift`. The two symbols redeclare when the files
64
+ * compile into one module, but:
65
+ * - the retained-sibling guard only scans files carrying THIS generator's own
66
+ * banner, so it never reads the other generator's file; and
67
+ * - the foreign-banner write guard only fires on identical file PATHS, and
68
+ * these filenames differ.
69
+ * So both generators succeed and `swift build` fails with an invalid
70
+ * redeclaration. This guard closes the gap: whichever generator runs second
71
+ * finds the other's file already on disk and reports the clash. It intentionally
72
+ * runs on every run (full or filtered), because a full run does not regenerate
73
+ * the foreign generator's files — they always coexist.
74
+ *
75
+ * `emitted` maps symbol → the emitting input's owner key. A foreign file owning
76
+ * the SAME symbol is always a redeclaration: foreign files carry a different
77
+ * banner and (because same-path clashes are caught by the write guard) a
78
+ * different filename, so there is no self-collision to exclude.
79
+ */
80
+ export declare function assertNoForeignGeneratorSymbolCollision(opts: {
81
+ outputDir: string;
82
+ foreignBanner: string;
83
+ suffix: string;
84
+ emitted: Map<string, string>;
85
+ makeError: (info: {
86
+ symbol: string;
87
+ owner: string;
88
+ siblingStem: string;
89
+ }) => Error;
90
+ }): Promise<void>;
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Retained-sibling collision detection for filtered Swift codegen runs
3
+ * (issue #1653, class 3a for `--single` runs).
4
+ *
5
+ * A `singleType` / `singleWorkflow` run renders ONLY the selected input, but its
6
+ * sibling `.generated.swift` files stay on disk (they are deliberately retained
7
+ * — orphan cleanup is scoped to the filtered file). Those siblings never enter
8
+ * the run-scoped in-memory registry, which sees only `options.inputs`, so a
9
+ * symbol the filtered run emits could still redeclare against a sibling once all
10
+ * files compile into one module.
11
+ *
12
+ * The cross-generator foreign-banner write guard does NOT cover this: siblings
13
+ * carry the SAME ownership banner and a DIFFERENT filename, so there is neither a
14
+ * path collision nor a foreign banner to trip. This module closes that gap by
15
+ * re-deriving each retained sibling's declared top-level symbols directly from
16
+ * the file on disk and comparing them against the run's emitted symbols — no
17
+ * persistent symbol manifest (sponsor decision #1 reserved that for a follow-up).
18
+ */
19
+ import * as path from "path";
20
+ import { promises as fsp } from "fs";
21
+ /**
22
+ * Top-level Swift declarations a generated file exposes to its module. Anchored
23
+ * to column 0 so nested (indented) enum/struct declarations and the `<Type>Ops`
24
+ * factory's struct methods are excluded — only module-level symbols can collide
25
+ * across files. A backtick-escaped reserved-word identifier is unescaped so the
26
+ * key matches what the emitter tracks in its registry.
27
+ *
28
+ * The identifier character class mirrors the emitter's alphabet in
29
+ * `swiftNaming.ts` exactly (`isLetter` = `\p{L}`, `isAsciiDigit` = ASCII `0`–`9`,
30
+ * plus `_`), so the parser recognizes precisely what the emitter can emit —
31
+ * including Unicode-letter identifiers like `ÉFlowInput` that an ASCII-only
32
+ * `[A-Za-z0-9_]+` capture would miss (issue #1705). The `u` flag makes `\p{L}`
33
+ * a valid Unicode property escape.
34
+ */
35
+ const TOP_LEVEL_DECL = /^public (?:struct|typealias|enum|func)\s+`?([\p{L}0-9_]+)`?/u;
36
+ /** Parse the module-level Swift symbols declared in a generated file's source. */
37
+ export function parseTopLevelSwiftSymbols(content) {
38
+ const symbols = [];
39
+ for (const line of content.split("\n")) {
40
+ const m = TOP_LEVEL_DECL.exec(line);
41
+ if (m)
42
+ symbols.push(m[1]);
43
+ }
44
+ return symbols;
45
+ }
46
+ /**
47
+ * Map each retained sibling's declared top-level symbol → the sibling's file
48
+ * stem (its owner). Only generator-owned files (content starts with
49
+ * `ownershipBanner`) are considered; the run's own output paths are excluded so
50
+ * a filtered re-run never collides with the file it is about to rewrite. On the
51
+ * first sibling that declares a symbol, that sibling wins (deterministic by
52
+ * directory-read order).
53
+ */
54
+ export async function collectRetainedSiblingSymbols(opts) {
55
+ const exclude = new Set([...opts.excludePaths].map((p) => path.resolve(p)));
56
+ const out = new Map();
57
+ let entries;
58
+ try {
59
+ entries = await fsp.readdir(opts.outputDir, { withFileTypes: true });
60
+ }
61
+ catch {
62
+ return out; // output dir absent → no siblings
63
+ }
64
+ for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
65
+ if (!entry.isFile() || !entry.name.endsWith(opts.suffix))
66
+ continue;
67
+ const filePath = path.resolve(opts.outputDir, entry.name);
68
+ if (exclude.has(filePath))
69
+ continue;
70
+ let content;
71
+ try {
72
+ content = await fsp.readFile(filePath, "utf-8");
73
+ }
74
+ catch {
75
+ continue;
76
+ }
77
+ if (!content.startsWith(opts.ownershipBanner))
78
+ continue; // not ours
79
+ const stem = entry.name.slice(0, -opts.suffix.length);
80
+ for (const symbol of parseTopLevelSwiftSymbols(content)) {
81
+ if (!out.has(symbol))
82
+ out.set(symbol, stem);
83
+ }
84
+ }
85
+ return out;
86
+ }
87
+ /**
88
+ * Throw if any symbol this filtered run emits collides with a retained sibling
89
+ * already on disk. `emitted` maps symbol → the emitting input's owner key; a
90
+ * sibling owning the SAME symbol under a DIFFERENT stem is a redeclaration. The
91
+ * caller supplies `makeError` so the shared module stays free of the Swift
92
+ * error type.
93
+ */
94
+ export async function assertNoRetainedSiblingCollision(opts) {
95
+ const siblings = await collectRetainedSiblingSymbols({
96
+ outputDir: opts.outputDir,
97
+ ownershipBanner: opts.ownershipBanner,
98
+ suffix: opts.suffix,
99
+ excludePaths: opts.ownPaths,
100
+ });
101
+ if (siblings.size === 0)
102
+ return;
103
+ for (const [symbol, owner] of opts.emitted) {
104
+ const siblingStem = siblings.get(symbol);
105
+ if (siblingStem !== undefined && siblingStem !== owner) {
106
+ throw opts.makeError({ symbol, owner, siblingStem });
107
+ }
108
+ }
109
+ }
110
+ /**
111
+ * Throw if any symbol this run emits collides with a top-level symbol declared
112
+ * by a file owned by ANOTHER generator (a DIFFERENT ownership banner) in the
113
+ * same output dir (issue #1857).
114
+ *
115
+ * The same-banner retained-sibling guard above and the foreign-banner WRITE
116
+ * guard both miss this class. When database and workflow Swift codegen share an
117
+ * output dir, a database type `foo-input` emits `public enum FooInput` in
118
+ * `foo-input.generated.swift`, while workflow `foo` emits a top-level struct
119
+ * `FooInput` in `foo.generated.swift`. The two symbols redeclare when the files
120
+ * compile into one module, but:
121
+ * - the retained-sibling guard only scans files carrying THIS generator's own
122
+ * banner, so it never reads the other generator's file; and
123
+ * - the foreign-banner write guard only fires on identical file PATHS, and
124
+ * these filenames differ.
125
+ * So both generators succeed and `swift build` fails with an invalid
126
+ * redeclaration. This guard closes the gap: whichever generator runs second
127
+ * finds the other's file already on disk and reports the clash. It intentionally
128
+ * runs on every run (full or filtered), because a full run does not regenerate
129
+ * the foreign generator's files — they always coexist.
130
+ *
131
+ * `emitted` maps symbol → the emitting input's owner key. A foreign file owning
132
+ * the SAME symbol is always a redeclaration: foreign files carry a different
133
+ * banner and (because same-path clashes are caught by the write guard) a
134
+ * different filename, so there is no self-collision to exclude.
135
+ */
136
+ export async function assertNoForeignGeneratorSymbolCollision(opts) {
137
+ const foreign = await collectRetainedSiblingSymbols({
138
+ outputDir: opts.outputDir,
139
+ ownershipBanner: opts.foreignBanner,
140
+ suffix: opts.suffix,
141
+ excludePaths: [], // foreign-banner files are never this run's own outputs
142
+ });
143
+ if (foreign.size === 0)
144
+ return;
145
+ for (const [symbol, owner] of opts.emitted) {
146
+ const siblingStem = foreign.get(symbol);
147
+ if (siblingStem !== undefined) {
148
+ throw opts.makeError({ symbol, owner, siblingStem });
149
+ }
150
+ }
151
+ }
152
+ //# sourceMappingURL=siblingSymbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siblingSymbols.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/siblingSymbols.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Identifier-naming helpers for `swift-codegen` (issue #1547, Phase 1).
3
+ *
4
+ * This is a faithful TypeScript port of the Swift-native
5
+ * `swift-client/Sources/SwiftBaoCodegen/Naming.swift`. Both implementations
6
+ * must agree EXACTLY on PascalCase, reserved-word escaping, and enum-case
7
+ * sanitization — otherwise the CLI-emitted `.generated.swift` and the Swift
8
+ * model codegen would name the same input differently and drift apart.
9
+ *
10
+ * The maintainer decision (issue #1547, 2026-07-15, binding item 5) requires
11
+ * these two implementations to be pinned to a SHARED naming-conformance fixture
12
+ * set (`naming-conformance-fixtures.json`) consumed by both sides. This file is
13
+ * the TypeScript consumer of those rules; the Swift-side consumer lands with the
14
+ * `swift test` phase (Phase 3), reading the same fixtures.
15
+ *
16
+ * Only the emitted identifiers are sanitized — a generator that walks a JSON
17
+ * schema always keeps the ORIGINAL wire key for `CodingKeys` raw values and for
18
+ * the runtime call, exactly as `Naming.swift` does for model codegen.
19
+ */
20
+ /**
21
+ * Reserved Swift keywords escaped with backticks when used as an identifier.
22
+ * Byte-for-byte the `Naming.swift` `swiftKeywords` set (issue #1547 binding 5).
23
+ */
24
+ export declare const SWIFT_KEYWORDS: ReadonlySet<string>;
25
+ /**
26
+ * `tasks` → `Tasks`, `user_profile` → `UserProfile`, `liveUpdatesState` →
27
+ * `LiveUpdatesState`. Port of `Naming.pascalCase`: splits ONLY on `_`, `-`, and
28
+ * space, capitalizes each segment start, and preserves existing internal casing.
29
+ * Other punctuation (e.g. `.`) is kept verbatim here — callers that need a legal
30
+ * *type* identifier run the result through `structTypeName`/`enumTypeName`,
31
+ * which strip it.
32
+ */
33
+ export declare function pascalCase(s: string): string;
34
+ /** Backtick-escape a reserved word so it is legal as an identifier. */
35
+ export declare function escapeIfReserved(s: string): string;
36
+ /**
37
+ * Derive a Swift `enum` case identifier from an arbitrary enum value string.
38
+ * Port of `Naming.enumCaseIdentifier`: non-`[letter|ASCII-digit|_]` runs
39
+ * collapse to a single `_`, a leading ASCII digit is prefixed with `_`, an
40
+ * empty/all-separator value becomes `_`, and reserved words are backtick-escaped.
41
+ * The value itself is preserved verbatim as the case's explicit raw value by the
42
+ * caller.
43
+ */
44
+ export declare function enumCaseIdentifier(value: string): string;
45
+ /**
46
+ * Map an ordered list of enum value strings to unique Swift case names,
47
+ * appending `_2`, `_3`, … to any name that would otherwise collide. Port of
48
+ * `Naming.enumCaseNames`. Returns `{ name, raw }` pairs in input order.
49
+ */
50
+ export declare function enumCaseNames(values: string[]): Array<{
51
+ name: string;
52
+ raw: string;
53
+ }>;
54
+ /**
55
+ * Nested-`enum` type name for a field declaring `enum = [...]`. Port of
56
+ * `Naming.enumTypeName(forField:)`: PascalCase, drop non-identifier characters,
57
+ * prefix `_` if empty/leading-digit, then append `Value` (which also lifts a
58
+ * bare keyword out of keyword-space, e.g. `Self` → `SelfValue`).
59
+ */
60
+ export declare function enumTypeName(field: string): string;
61
+ /**
62
+ * Nested-`struct` type name for a field whose value is an object (or a
63
+ * oneOf/array-element base). PascalCase + type-identifier sanitization; a
64
+ * keyword result (`Any`, `Self`) is suffixed with `_` since a struct name has
65
+ * no `Value` suffix to lift it out of keyword-space.
66
+ */
67
+ export declare function structTypeName(field: string): string;
68
+ /**
69
+ * Swift *property* identifier for a JSON object key. A key that is already a
70
+ * legal Swift identifier is kept (reserved words backtick-escaped); anything
71
+ * else (hyphen, dot, leading digit) is sanitized to a legal camelCase
72
+ * identifier. The original wire key is preserved by the caller via `CodingKeys`.
73
+ */
74
+ export declare function swiftPropertyName(key: string): string;
75
+ /**
76
+ * camelCase free-function name for a workflow invoker factory (#1547, Phase 3).
77
+ * `create-checkout-session` → `createCheckoutSession`. A digit-leading key
78
+ * (`123-job` → `_123Job`) is underscore-prefixed, and a result that lands on a
79
+ * Swift keyword (`default`, `class`) is backtick-escaped — legal for a `func`
80
+ * declaration, unlike a type name (which must be suffix-escaped). Only the
81
+ * emitted identifier changes; the runtime call still passes the ORIGINAL key.
82
+ */
83
+ export declare function workflowSwiftFactoryName(key: string): string;
84
+ /** Strip backticks from an escaped identifier (for `CodingKeys` raw-value logic). */
85
+ export declare function unescapeIdentifier(name: string): string;
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Identifier-naming helpers for `swift-codegen` (issue #1547, Phase 1).
3
+ *
4
+ * This is a faithful TypeScript port of the Swift-native
5
+ * `swift-client/Sources/SwiftBaoCodegen/Naming.swift`. Both implementations
6
+ * must agree EXACTLY on PascalCase, reserved-word escaping, and enum-case
7
+ * sanitization — otherwise the CLI-emitted `.generated.swift` and the Swift
8
+ * model codegen would name the same input differently and drift apart.
9
+ *
10
+ * The maintainer decision (issue #1547, 2026-07-15, binding item 5) requires
11
+ * these two implementations to be pinned to a SHARED naming-conformance fixture
12
+ * set (`naming-conformance-fixtures.json`) consumed by both sides. This file is
13
+ * the TypeScript consumer of those rules; the Swift-side consumer lands with the
14
+ * `swift test` phase (Phase 3), reading the same fixtures.
15
+ *
16
+ * Only the emitted identifiers are sanitized — a generator that walks a JSON
17
+ * schema always keeps the ORIGINAL wire key for `CodingKeys` raw values and for
18
+ * the runtime call, exactly as `Naming.swift` does for model codegen.
19
+ */
20
+ /**
21
+ * Reserved Swift keywords escaped with backticks when used as an identifier.
22
+ * Byte-for-byte the `Naming.swift` `swiftKeywords` set (issue #1547 binding 5).
23
+ */
24
+ export const SWIFT_KEYWORDS = new Set([
25
+ "associatedtype", "class", "deinit", "enum", "extension",
26
+ "fileprivate", "func", "import", "init", "inout", "internal",
27
+ "let", "open", "operator", "private", "precedencegroup", "protocol",
28
+ "public", "rethrows", "static", "struct", "subscript", "typealias",
29
+ "var", "break", "case", "catch", "continue", "default", "defer",
30
+ "do", "else", "fallthrough", "for", "guard", "if", "in", "repeat",
31
+ "return", "throw", "switch", "where", "while", "as", "Any", "false",
32
+ "is", "nil", "self", "Self", "super", "throws", "true", "try",
33
+ ]);
34
+ /** True only for the ASCII digits `0`–`9` (Swift's `isASCIIDigit`). */
35
+ function isAsciiDigit(ch) {
36
+ return ch >= "0" && ch <= "9";
37
+ }
38
+ /**
39
+ * True for a Unicode letter — the JS equivalent of Swift's `Character.isLetter`
40
+ * (Swift identifiers permit Unicode letters). Iterating by code point keeps
41
+ * astral characters intact.
42
+ */
43
+ function isLetter(ch) {
44
+ return /\p{L}/u.test(ch);
45
+ }
46
+ /**
47
+ * `tasks` → `Tasks`, `user_profile` → `UserProfile`, `liveUpdatesState` →
48
+ * `LiveUpdatesState`. Port of `Naming.pascalCase`: splits ONLY on `_`, `-`, and
49
+ * space, capitalizes each segment start, and preserves existing internal casing.
50
+ * Other punctuation (e.g. `.`) is kept verbatim here — callers that need a legal
51
+ * *type* identifier run the result through `structTypeName`/`enumTypeName`,
52
+ * which strip it.
53
+ */
54
+ export function pascalCase(s) {
55
+ if (s.length === 0)
56
+ return s;
57
+ let out = "";
58
+ let capitalizeNext = true;
59
+ for (const ch of s) {
60
+ if (ch === "_" || ch === "-" || ch === " ") {
61
+ capitalizeNext = true;
62
+ continue;
63
+ }
64
+ if (capitalizeNext) {
65
+ out += ch.toUpperCase();
66
+ capitalizeNext = false;
67
+ }
68
+ else {
69
+ out += ch;
70
+ }
71
+ }
72
+ return out;
73
+ }
74
+ /** Backtick-escape a reserved word so it is legal as an identifier. */
75
+ export function escapeIfReserved(s) {
76
+ return SWIFT_KEYWORDS.has(s) ? `\`${s}\`` : s;
77
+ }
78
+ /**
79
+ * Derive a Swift `enum` case identifier from an arbitrary enum value string.
80
+ * Port of `Naming.enumCaseIdentifier`: non-`[letter|ASCII-digit|_]` runs
81
+ * collapse to a single `_`, a leading ASCII digit is prefixed with `_`, an
82
+ * empty/all-separator value becomes `_`, and reserved words are backtick-escaped.
83
+ * The value itself is preserved verbatim as the case's explicit raw value by the
84
+ * caller.
85
+ */
86
+ export function enumCaseIdentifier(value) {
87
+ let out = "";
88
+ for (const ch of value) {
89
+ if (isLetter(ch) || isAsciiDigit(ch) || ch === "_") {
90
+ out += ch;
91
+ }
92
+ else if (!out.endsWith("_")) {
93
+ out += "_";
94
+ }
95
+ }
96
+ // Trim a trailing separator artifact but keep a lone "_".
97
+ if (out.length > 1 && out.endsWith("_"))
98
+ out = out.slice(0, -1);
99
+ if (out.length === 0)
100
+ out = "_";
101
+ if (isAsciiDigit(out.charAt(0)))
102
+ out = "_" + out;
103
+ return escapeIfReserved(out);
104
+ }
105
+ /**
106
+ * Map an ordered list of enum value strings to unique Swift case names,
107
+ * appending `_2`, `_3`, … to any name that would otherwise collide. Port of
108
+ * `Naming.enumCaseNames`. Returns `{ name, raw }` pairs in input order.
109
+ */
110
+ export function enumCaseNames(values) {
111
+ const used = new Map();
112
+ const out = [];
113
+ for (const v of values) {
114
+ // `enumCaseIdentifier` may return a backtick-escaped keyword (e.g.
115
+ // `` `default` ``). Dedup and build the `_N` suffix on the UN-escaped base,
116
+ // then re-escape once — appending the suffix to the escaped form would
117
+ // produce `` `default`_2 `` (the digit outside the backticks), which is not
118
+ // a legal Swift identifier.
119
+ const bare = unescapeIdentifier(enumCaseIdentifier(v));
120
+ const count = used.get(bare) ?? 0;
121
+ used.set(bare, count + 1);
122
+ const name = escapeIfReserved(count === 0 ? bare : `${bare}_${count + 1}`);
123
+ out.push({ name, raw: v });
124
+ }
125
+ return out;
126
+ }
127
+ /**
128
+ * Sanitize a PascalCased name into a legal, non-keyword Swift *type* identifier.
129
+ * A type name can't be backtick-escaped the way a property name can, so
130
+ * illegal characters are dropped and a keyword result is suffixed. Shared by
131
+ * `structTypeName` and `enumTypeName` (which mirrors `Naming.enumTypeName`).
132
+ */
133
+ function sanitizeTypeIdentifier(pascal) {
134
+ let base = "";
135
+ for (const ch of pascal) {
136
+ if (isLetter(ch) || isAsciiDigit(ch) || ch === "_")
137
+ base += ch;
138
+ }
139
+ if (base.length === 0)
140
+ base = "_";
141
+ if (isAsciiDigit(base.charAt(0)))
142
+ base = "_" + base;
143
+ return base;
144
+ }
145
+ /**
146
+ * Nested-`enum` type name for a field declaring `enum = [...]`. Port of
147
+ * `Naming.enumTypeName(forField:)`: PascalCase, drop non-identifier characters,
148
+ * prefix `_` if empty/leading-digit, then append `Value` (which also lifts a
149
+ * bare keyword out of keyword-space, e.g. `Self` → `SelfValue`).
150
+ */
151
+ export function enumTypeName(field) {
152
+ return sanitizeTypeIdentifier(pascalCase(field)) + "Value";
153
+ }
154
+ /**
155
+ * Nested-`struct` type name for a field whose value is an object (or a
156
+ * oneOf/array-element base). PascalCase + type-identifier sanitization; a
157
+ * keyword result (`Any`, `Self`) is suffixed with `_` since a struct name has
158
+ * no `Value` suffix to lift it out of keyword-space.
159
+ */
160
+ export function structTypeName(field) {
161
+ const base = sanitizeTypeIdentifier(pascalCase(field));
162
+ return SWIFT_KEYWORDS.has(base) ? `${base}_` : base;
163
+ }
164
+ /**
165
+ * Swift *property* identifier for a JSON object key. A key that is already a
166
+ * legal Swift identifier is kept (reserved words backtick-escaped); anything
167
+ * else (hyphen, dot, leading digit) is sanitized to a legal camelCase
168
+ * identifier. The original wire key is preserved by the caller via `CodingKeys`.
169
+ */
170
+ export function swiftPropertyName(key) {
171
+ if (/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) {
172
+ return escapeIfReserved(key);
173
+ }
174
+ const pascal = sanitizeTypeIdentifier(pascalCase(key));
175
+ const camel = pascal.charAt(0).toLowerCase() + pascal.slice(1);
176
+ const safe = isAsciiDigit(camel.charAt(0)) ? `_${camel}` : camel;
177
+ return escapeIfReserved(safe);
178
+ }
179
+ /**
180
+ * camelCase free-function name for a workflow invoker factory (#1547, Phase 3).
181
+ * `create-checkout-session` → `createCheckoutSession`. A digit-leading key
182
+ * (`123-job` → `_123Job`) is underscore-prefixed, and a result that lands on a
183
+ * Swift keyword (`default`, `class`) is backtick-escaped — legal for a `func`
184
+ * declaration, unlike a type name (which must be suffix-escaped). Only the
185
+ * emitted identifier changes; the runtime call still passes the ORIGINAL key.
186
+ */
187
+ export function workflowSwiftFactoryName(key) {
188
+ const base = sanitizeTypeIdentifier(pascalCase(key));
189
+ if (base.length === 0)
190
+ return "_";
191
+ const camel = base.charAt(0).toLowerCase() + base.slice(1);
192
+ return escapeIfReserved(camel);
193
+ }
194
+ /** Strip backticks from an escaped identifier (for `CodingKeys` raw-value logic). */
195
+ export function unescapeIdentifier(name) {
196
+ return name.replace(/`/g, "");
197
+ }
198
+ //# sourceMappingURL=swiftNaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swiftNaming.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/swiftNaming.ts"],"names":[],"mappings":"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"}