An experimental TypeSpec syntax for Lexicon

fix more tests

-8
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/knot.tsp
··· 1 - import "@typelex/emitter"; 2 - 3 - namespace sh.tangled.knot { 4 - @rec("any") 5 - model Main { 6 - @required createdAt: datetime; 7 - } 8 - }
-24
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/label.op.tsp
··· 1 - import "@typelex/emitter"; 2 - 3 - namespace sh.tangled.label.`op` { 4 - @rec("tid") 5 - model Main { 6 - /** The subject (task, pull or discussion) of this label. Appviews may apply a `scope` check and refuse this op. */ 7 - @required 8 - subject: atUri; 9 - 10 - @required performedAt: datetime; 11 - @required add: Operand[]; 12 - @required delete: Operand[]; 13 - } 14 - 15 - model Operand { 16 - /** ATURI to the label definition */ 17 - @required 18 - key: atUri; 19 - 20 - /** Stringified value of the label. This is first unstringed by appviews and then interpreted as a concrete value. */ 21 - @required 22 - value: string; 23 - } 24 - }
+29
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/label/op.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.label.`op` { 4 + @rec("tid") 5 + model Main { 6 + @doc("The subject (task, pull or discussion) of this label. Appviews may apply a `scope` check and refuse this op.") 7 + @required 8 + subject: atUri; 9 + 10 + @required 11 + add: Operand[]; 12 + 13 + @required 14 + delete: Operand[]; 15 + 16 + @required 17 + performedAt: datetime; 18 + } 19 + 20 + model Operand { 21 + @doc("ATURI to the label definition") 22 + @required 23 + key: atUri; 24 + 25 + @doc("Stringified value of the label. This is first unstringed by appviews and then interpreted as a concrete value.") 26 + @required 27 + value: string; 28 + } 29 + }
-81
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/pipeline.tsp
··· 1 - import "@typelex/emitter"; 2 - 3 - namespace sh.tangled.pipeline { 4 - @rec("tid") 5 - model Main { 6 - @required triggerMetadata: TriggerMetadata; 7 - @required workflows: Workflow[]; 8 - } 9 - 10 - @closed 11 - @inline 12 - union TriggerKind { 13 - "push", 14 - "pull_request", 15 - "manual", 16 - } 17 - 18 - model TriggerMetadata { 19 - @required kind: TriggerKind; 20 - @required repo: TriggerRepo; 21 - 22 - push?: PushTriggerData; 23 - pullRequest?: PullRequestTriggerData; 24 - manual?: ManualTriggerData; 25 - } 26 - 27 - model TriggerRepo { 28 - @required knot: string; 29 - @required did: did; 30 - @required repo: string; 31 - @required defaultBranch: string; 32 - } 33 - 34 - model PushTriggerData { 35 - @required ref: string; 36 - 37 - @minLength(40) 38 - @maxLength(40) 39 - @required 40 - newSha: string; 41 - 42 - @minLength(40) 43 - @maxLength(40) 44 - @required 45 - oldSha: string; 46 - } 47 - 48 - model PullRequestTriggerData { 49 - @required sourceBranch: string; 50 - @required targetBranch: string; 51 - 52 - @minLength(40) 53 - @maxLength(40) 54 - @required 55 - sourceSha: string; 56 - 57 - @required action: string; 58 - } 59 - 60 - model ManualTriggerData { 61 - inputs?: Pair[]; 62 - } 63 - 64 - model Workflow { 65 - @required name: string; 66 - @required engine: string; 67 - @required clone: CloneOpts; 68 - @required raw: string; 69 - } 70 - 71 - model CloneOpts { 72 - @required skip: boolean; 73 - @required depth: integer; 74 - @required submodules: boolean; 75 - } 76 - 77 - model Pair { 78 - @required key: string; 79 - @required value: string; 80 - } 81 - }
+30
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo { 4 + @rec("tid") 5 + model Main { 6 + @doc("name of the repo") 7 + @required 8 + name: string; 9 + 10 + @doc("knot where the repo was created") 11 + @required 12 + knot: string; 13 + 14 + @doc("CI runner to send jobs to and receive results from") 15 + spindle?: string; 16 + 17 + @minGraphemes(1) 18 + @maxGraphemes(140) 19 + description?: string; 20 + 21 + @doc("source of the repo") 22 + source?: uri; 23 + 24 + @doc("List of labels that this repo subscribes to") 25 + labels?: atUri[]; 26 + 27 + @required 28 + createdAt: datetime; 29 + } 30 + }
+20
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/addSecret.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.addSecret { 4 + @procedure 5 + @doc("Add a CI secret") 6 + op main(input: { 7 + @required 8 + repo: atUri; 9 + 10 + @required 11 + @maxLength(50) 12 + @minLength(1) 13 + key: string; 14 + 15 + @required 16 + @maxLength(200) 17 + @minLength(1) 18 + value: string; 19 + }): void; 20 + }
+44
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/archive.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.archive { 4 + @query 5 + @encoding("*/*") 6 + @errors(RepoNotFound, RefNotFound, InvalidRequest, ArchiveError) 7 + op main( 8 + @doc("Repository identifier in format 'did:plc:.../repoName'") 9 + @required 10 + repo: string, 11 + 12 + @doc("Git reference (branch, tag, or commit SHA)") 13 + @required 14 + ref: string, 15 + 16 + @doc("Archive format") 17 + format?: ArchiveFormat = "tar.gz", 18 + 19 + @doc("Prefix for files in the archive") 20 + prefix?: string 21 + ): never; 22 + 23 + @closed 24 + @inline 25 + union ArchiveFormat { 26 + "tar", 27 + "zip", 28 + "tar.gz", 29 + "tar.bz2", 30 + "tar.xz" 31 + } 32 + 33 + @doc("Repository not found or access denied") 34 + model RepoNotFound {} 35 + 36 + @doc("Git reference not found") 37 + model RefNotFound {} 38 + 39 + @doc("Invalid request parameters") 40 + model InvalidRequest {} 41 + 42 + @doc("Failed to create archive") 43 + model ArchiveError {} 44 + }
+28
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/artifact.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.artifact { 4 + @rec("tid") 5 + model Main { 6 + @doc("name of the artifact") 7 + @required 8 + name: string; 9 + 10 + @doc("repo that this artifact is being uploaded to") 11 + @required 12 + repo: atUri; 13 + 14 + @doc("hash of the tag object that this artifact is attached to (only annotated tags are supported)") 15 + @required 16 + @minBytes(20) 17 + @maxBytes(20) 18 + tag: bytes; 19 + 20 + @doc("time of creation of this artifact") 21 + @required 22 + createdAt: datetime; 23 + 24 + @doc("the artifact") 25 + @required 26 + artifact: Blob<#["*/*"], 52428800>; 27 + } 28 + }
+100
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/blob.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.blob { 4 + @query 5 + @errors(RepoNotFound, RefNotFound, FileNotFound, InvalidRequest) 6 + op main( 7 + @doc("Repository identifier in format 'did:plc:.../repoName'") 8 + @required 9 + repo: string, 10 + 11 + @doc("Git reference (branch, tag, or commit SHA)") 12 + @required 13 + ref: string, 14 + 15 + @doc("Path to the file within the repository") 16 + @required 17 + path: string, 18 + 19 + @doc("Return raw file content instead of JSON response") 20 + raw?: boolean = false 21 + ): { 22 + @doc("The git reference used") 23 + @required 24 + ref: string; 25 + 26 + @doc("The file path") 27 + @required 28 + path: string; 29 + 30 + @doc("File content (base64 encoded for binary files)") 31 + @required 32 + content: string; 33 + 34 + @doc("Content encoding") 35 + encoding?: ContentEncoding; 36 + 37 + @doc("File size in bytes") 38 + size?: integer; 39 + 40 + @doc("Whether the file is binary") 41 + isBinary?: boolean; 42 + 43 + @doc("MIME type of the file") 44 + mimeType?: string; 45 + 46 + lastCommit?: LastCommit; 47 + }; 48 + 49 + @closed 50 + @inline 51 + union ContentEncoding { 52 + "utf-8", 53 + "base64" 54 + } 55 + 56 + model LastCommit { 57 + @doc("Commit hash") 58 + @required 59 + hash: string; 60 + 61 + @doc("Short commit hash") 62 + shortHash?: string; 63 + 64 + @doc("Commit message") 65 + @required 66 + message: string; 67 + 68 + author?: Signature; 69 + 70 + @doc("Commit timestamp") 71 + @required 72 + when: datetime; 73 + } 74 + 75 + model Signature { 76 + @doc("Author name") 77 + @required 78 + name: string; 79 + 80 + @doc("Author email") 81 + @required 82 + email: string; 83 + 84 + @doc("Author timestamp") 85 + @required 86 + when: datetime; 87 + } 88 + 89 + @doc("Repository not found or access denied") 90 + model RepoNotFound {} 91 + 92 + @doc("Git reference not found") 93 + model RefNotFound {} 94 + 95 + @doc("File not found at the specified path") 96 + model FileNotFound {} 97 + 98 + @doc("Invalid request parameters") 99 + model InvalidRequest {} 100 + }
+61
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/branch.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.branch { 4 + @query 5 + @errors(RepoNotFound, BranchNotFound, InvalidRequest) 6 + op main( 7 + @doc("Repository identifier in format 'did:plc:.../repoName'") 8 + @required 9 + repo: string, 10 + 11 + @doc("Branch name to get information for") 12 + @required 13 + name: string 14 + ): { 15 + @doc("Branch name") 16 + @required 17 + name: string; 18 + 19 + @doc("Latest commit hash on this branch") 20 + @required 21 + hash: string; 22 + 23 + @doc("Short commit hash") 24 + shortHash?: string; 25 + 26 + @doc("Timestamp of latest commit") 27 + @required 28 + when: datetime; 29 + 30 + @doc("Latest commit message") 31 + message?: string; 32 + 33 + author?: Signature; 34 + 35 + @doc("Whether this is the default branch") 36 + isDefault?: boolean; 37 + }; 38 + 39 + model Signature { 40 + @doc("Author name") 41 + @required 42 + name: string; 43 + 44 + @doc("Author email") 45 + @required 46 + email: string; 47 + 48 + @doc("Author timestamp") 49 + @required 50 + when: datetime; 51 + } 52 + 53 + @doc("Repository not found or access denied") 54 + model RepoNotFound {} 55 + 56 + @doc("Branch not found") 57 + model BranchNotFound {} 58 + 59 + @doc("Invalid request parameters") 60 + model InvalidRequest {} 61 + }
+26
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/branches.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.branches { 4 + @query 5 + @encoding("*/*") 6 + @errors(RepoNotFound, InvalidRequest) 7 + op main( 8 + @doc("Repository identifier in format 'did:plc:.../repoName'") 9 + @required 10 + repo: string, 11 + 12 + @doc("Maximum number of branches to return") 13 + @minValue(1) 14 + @maxValue(100) 15 + limit?: integer = 50, 16 + 17 + @doc("Pagination cursor") 18 + cursor?: string 19 + ): never; 20 + 21 + @doc("Repository not found or access denied") 22 + model RepoNotFound {} 23 + 24 + @doc("Invalid request parameters") 25 + model InvalidRequest {} 26 + }
+16
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/collaborator.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.collaborator { 4 + @rec("tid") 5 + model Main { 6 + @required 7 + subject: did; 8 + 9 + @doc("repo to add this user to") 10 + @required 11 + repo: atUri; 12 + 13 + @required 14 + createdAt: datetime; 15 + } 16 + }
+32
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/compare.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.compare { 4 + @query 5 + @encoding("*/*") 6 + @errors(RepoNotFound, RevisionNotFound, InvalidRequest, CompareError) 7 + op main( 8 + @doc("Repository identifier in format 'did:plc:.../repoName'") 9 + @required 10 + repo: string, 11 + 12 + @doc("First revision (commit, branch, or tag)") 13 + @required 14 + rev1: string, 15 + 16 + @doc("Second revision (commit, branch, or tag)") 17 + @required 18 + rev2: string 19 + ): never; 20 + 21 + @doc("Repository not found or access denied") 22 + model RepoNotFound {} 23 + 24 + @doc("One or both revisions not found") 25 + model RevisionNotFound {} 26 + 27 + @doc("Invalid request parameters") 28 + model InvalidRequest {} 29 + 30 + @doc("Failed to compare revisions") 31 + model CompareError {} 32 + }
+17
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/create.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.create { 4 + @procedure 5 + @doc("Create a new repository") 6 + op main(input: { 7 + @doc("Rkey of the repository record") 8 + @required 9 + rkey: string; 10 + 11 + @doc("Default branch to push to") 12 + defaultBranch?: string; 13 + 14 + @doc("A source URL to clone from, populate this when forking or importing a repository.") 15 + source?: string; 16 + }): void; 17 + }
+19
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/delete.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.delete { 4 + @procedure 5 + @doc("Delete a repository") 6 + op main(input: { 7 + @doc("DID of the repository owner") 8 + @required 9 + did: did; 10 + 11 + @doc("Name of the repository to delete") 12 + @required 13 + name: string; 14 + 15 + @doc("Rkey of the repository record") 16 + @required 17 + rkey: string; 18 + }): void; 19 + }
+25
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/diff.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.diff { 4 + @query 5 + @encoding("*/*") 6 + @errors(RepoNotFound, RefNotFound, InvalidRequest) 7 + op main( 8 + @doc("Repository identifier in format 'did:plc:.../repoName'") 9 + @required 10 + repo: string, 11 + 12 + @doc("Git reference (branch, tag, or commit SHA)") 13 + @required 14 + ref: string 15 + ): never; 16 + 17 + @doc("Repository not found or access denied") 18 + model RepoNotFound {} 19 + 20 + @doc("Git reference not found") 21 + model RefNotFound {} 22 + 23 + @doc("Invalid request parameters") 24 + model InvalidRequest {} 25 + }
+31
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/forkStatus.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.forkStatus { 4 + @procedure 5 + @doc("Check fork status relative to upstream source") 6 + op main(input: { 7 + @doc("DID of the fork owner") 8 + @required 9 + did: did; 10 + 11 + @doc("Name of the forked repository") 12 + @required 13 + name: string; 14 + 15 + @doc("Source repository URL") 16 + @required 17 + source: string; 18 + 19 + @doc("Branch to check status for") 20 + @required 21 + branch: string; 22 + 23 + @doc("Hidden ref to use for comparison") 24 + @required 25 + hiddenRef: string; 26 + }): { 27 + @doc("Fork status: 0=UpToDate, 1=FastForwardable, 2=Conflict, 3=MissingBranch") 28 + @required 29 + status: integer; 30 + }; 31 + }
+23
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/forkSync.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.forkSync { 4 + @procedure 5 + @doc("Sync a forked repository with its upstream source") 6 + op main(input: { 7 + @doc("DID of the fork owner") 8 + @required 9 + did: did; 10 + 11 + @doc("AT-URI of the source repository") 12 + @required 13 + source: atUri; 14 + 15 + @doc("Name of the forked repository") 16 + @required 17 + name: string; 18 + 19 + @doc("Branch to sync") 20 + @required 21 + branch: string; 22 + }): void; 23 + }
+51
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/getDefaultBranch.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.getDefaultBranch { 4 + @query 5 + @errors(RepoNotFound, InvalidRequest) 6 + op main( 7 + @doc("Repository identifier in format 'did:plc:.../repoName'") 8 + @required 9 + repo: string 10 + ): { 11 + @doc("Default branch name") 12 + @required 13 + name: string; 14 + 15 + @doc("Latest commit hash on default branch") 16 + @required 17 + hash: string; 18 + 19 + @doc("Short commit hash") 20 + shortHash?: string; 21 + 22 + @doc("Timestamp of latest commit") 23 + @required 24 + when: datetime; 25 + 26 + @doc("Latest commit message") 27 + message?: string; 28 + 29 + author?: Signature; 30 + }; 31 + 32 + model Signature { 33 + @doc("Author name") 34 + @required 35 + name: string; 36 + 37 + @doc("Author email") 38 + @required 39 + email: string; 40 + 41 + @doc("Author timestamp") 42 + @required 43 + when: datetime; 44 + } 45 + 46 + @doc("Repository not found or access denied") 47 + model RepoNotFound {} 48 + 49 + @doc("Invalid request parameters") 50 + model InvalidRequest {} 51 + }
+29
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/hiddenRef.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.hiddenRef { 4 + @procedure 5 + @doc("Create a hidden ref in a repository") 6 + op main(input: { 7 + @doc("AT-URI of the repository") 8 + @required 9 + repo: atUri; 10 + 11 + @doc("Fork reference name") 12 + @required 13 + forkRef: string; 14 + 15 + @doc("Remote reference name") 16 + @required 17 + remoteRef: string; 18 + }): { 19 + @doc("Whether the hidden ref was created successfully") 20 + @required 21 + success: boolean; 22 + 23 + @doc("The created hidden ref name") 24 + ref?: string; 25 + 26 + @doc("Error message if creation failed") 27 + error?: string; 28 + }; 29 + }
+59
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/languages.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.languages { 4 + @query 5 + @errors(RepoNotFound, RefNotFound, InvalidRequest) 6 + op main( 7 + @doc("Repository identifier in format 'did:plc:.../repoName'") 8 + @required 9 + repo: string, 10 + 11 + @doc("Git reference (branch, tag, or commit SHA)") 12 + ref?: string = "HEAD" 13 + ): { 14 + @doc("The git reference used") 15 + @required 16 + ref: string; 17 + 18 + @required 19 + languages: Language[]; 20 + 21 + @doc("Total size of all analyzed files in bytes") 22 + totalSize?: integer; 23 + 24 + @doc("Total number of files analyzed") 25 + totalFiles?: integer; 26 + }; 27 + 28 + model Language { 29 + @doc("Programming language name") 30 + @required 31 + name: string; 32 + 33 + @doc("Total size of files in this language (bytes)") 34 + @required 35 + size: integer; 36 + 37 + @doc("Percentage of total codebase (0-100)") 38 + @required 39 + percentage: integer; 40 + 41 + @doc("Number of files in this language") 42 + fileCount?: integer; 43 + 44 + @doc("Hex color code for this language") 45 + color?: string; 46 + 47 + @doc("File extensions associated with this language") 48 + extensions?: string[]; 49 + } 50 + 51 + @doc("Repository not found or access denied") 52 + model RepoNotFound {} 53 + 54 + @doc("Git reference not found") 55 + model RefNotFound {} 56 + 57 + @doc("Invalid request parameters") 58 + model InvalidRequest {} 59 + }
+28
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/listSecrets.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.listSecrets { 4 + @query 5 + op main( 6 + @required 7 + repo: atUri 8 + ): { 9 + @required 10 + secrets: Secret[]; 11 + }; 12 + 13 + model Secret { 14 + @required 15 + repo: atUri; 16 + 17 + @required 18 + @maxLength(50) 19 + @minLength(1) 20 + key: string; 21 + 22 + @required 23 + createdAt: datetime; 24 + 25 + @required 26 + createdBy: did; 27 + } 28 + }
+39
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/log.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.log { 4 + @query 5 + @encoding("*/*") 6 + @errors(RepoNotFound, RefNotFound, PathNotFound, InvalidRequest) 7 + op main( 8 + @doc("Repository identifier in format 'did:plc:.../repoName'") 9 + @required 10 + repo: string, 11 + 12 + @doc("Git reference (branch, tag, or commit SHA)") 13 + @required 14 + ref: string, 15 + 16 + @doc("Path to filter commits by") 17 + path?: string = "", 18 + 19 + @doc("Maximum number of commits to return") 20 + @minValue(1) 21 + @maxValue(100) 22 + limit?: integer = 50, 23 + 24 + @doc("Pagination cursor (commit SHA)") 25 + cursor?: string 26 + ): never; 27 + 28 + @doc("Repository not found or access denied") 29 + model RepoNotFound {} 30 + 31 + @doc("Git reference not found") 32 + model RefNotFound {} 33 + 34 + @doc("Path not found in repository") 35 + model PathNotFound {} 36 + 37 + @doc("Invalid request parameters") 38 + model InvalidRequest {} 39 + }
+35
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/merge.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.merge { 4 + @procedure 5 + @doc("Merge a patch into a repository branch") 6 + op main(input: { 7 + @doc("DID of the repository owner") 8 + @required 9 + did: did; 10 + 11 + @doc("Name of the repository") 12 + @required 13 + name: string; 14 + 15 + @doc("Patch content to merge") 16 + @required 17 + patch: string; 18 + 19 + @doc("Target branch to merge into") 20 + @required 21 + branch: string; 22 + 23 + @doc("Author name for the merge commit") 24 + authorName?: string; 25 + 26 + @doc("Author email for the merge commit") 27 + authorEmail?: string; 28 + 29 + @doc("Additional commit message body") 30 + commitBody?: string; 31 + 32 + @doc("Merge commit message") 33 + commitMessage?: string; 34 + }): void; 35 + }
+1 -1
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull.tsp
··· 23 23 model Source { 24 24 @required branch: string; 25 25 26 + @required 26 27 @minLength(40) 27 28 @maxLength(40) 28 - @required 29 29 sha: string; 30 30 31 31 repo?: atUri;
+13
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/setDefaultBranch.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.repo.setDefaultBranch { 4 + @procedure 5 + @doc("Set the default branch for a repository") 6 + op main(input: { 7 + @required 8 + repo: atUri; 9 + 10 + @required 11 + defaultBranch: string; 12 + }): void; 13 + }
+16
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/spindle/member.tsp
··· 1 + import "@typelex/emitter"; 2 + 3 + namespace sh.tangled.spindle.member { 4 + @rec("tid") 5 + model Main { 6 + @required 7 + subject: did; 8 + 9 + @doc("spindle instance that the subject is now a member of") 10 + @required 11 + instance: string; 12 + 13 + @required 14 + createdAt: datetime; 15 + } 16 + }
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/knot/knot.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/knot.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/pipeline/pipeline.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/pipeline.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/defaultBranch.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/setDefaultBranch.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/repo.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/spindle/spindle.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/spindle.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/string/string.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/string.json