@osdk/create-app 2.1.0-beta.9 → 2.1.0-rc.32

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 (189) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/build/esm/{esm-FXURBNU2.js → esm-4SFFV2ZK.js} +6 -6
  3. package/build/esm/esm-4SFFV2ZK.js.map +1 -0
  4. package/build/esm/esm-BFQ5RNHV.js +1249 -0
  5. package/build/esm/esm-BFQ5RNHV.js.map +1 -0
  6. package/build/esm/{esm-G7B67PJ6.js → esm-EXZTN5HA.js} +5 -5
  7. package/build/esm/esm-EXZTN5HA.js.map +1 -0
  8. package/build/{browser/esm-S2OWTMMF.js → esm/esm-FZSV3C5D.js} +73 -53
  9. package/build/esm/esm-FZSV3C5D.js.map +1 -0
  10. package/build/{browser/esm-F6Y6OKER.js → esm/esm-HA4JIHHL.js} +4 -4
  11. package/build/esm/esm-HA4JIHHL.js.map +1 -0
  12. package/build/esm/{esm-LF7OTAKA.js → esm-NFVUE2AE.js} +6 -6
  13. package/build/esm/esm-NFVUE2AE.js.map +1 -0
  14. package/build/{browser/esm-4QSCBEZC.js → esm/esm-WPYEYT7F.js} +31 -34
  15. package/build/esm/esm-WPYEYT7F.js.map +1 -0
  16. package/build/esm/{esm-PQDKPDBA.js → esm-XWXVWZDN.js} +8 -8
  17. package/build/esm/esm-XWXVWZDN.js.map +1 -0
  18. package/build/{browser/esm-Y7D2PCM4.js → esm/esm-YVNV3MQG.js} +8 -8
  19. package/build/esm/esm-YVNV3MQG.js.map +1 -0
  20. package/build/esm/{esm-H2IADGOR.js → esm-ZDKAQEHX.js} +33 -37
  21. package/build/esm/esm-ZDKAQEHX.js.map +1 -0
  22. package/build/esm/{esm-IWXD7ZFP.js → esm-ZXMFAUNZ.js} +8 -8
  23. package/build/esm/esm-ZXMFAUNZ.js.map +1 -0
  24. package/build/esm/index.js +28 -18
  25. package/build/esm/index.js.map +1 -1
  26. package/build/{esm → types}/cli.d.ts +0 -1
  27. package/build/types/cli.d.ts.map +1 -0
  28. package/build/types/cli.test.d.ts +1 -0
  29. package/build/types/cli.test.d.ts.map +1 -0
  30. package/build/{esm → types}/consola.d.ts +0 -1
  31. package/build/types/consola.d.ts.map +1 -0
  32. package/build/types/generate/generateEnv.d.ts +12 -0
  33. package/build/types/generate/generateEnv.d.ts.map +1 -0
  34. package/build/types/generate/generateEnv.test.d.ts +1 -0
  35. package/build/types/generate/generateEnv.test.d.ts.map +1 -0
  36. package/build/types/generate/generateFoundryConfigJson.d.ts +5 -0
  37. package/build/types/generate/generateFoundryConfigJson.d.ts.map +1 -0
  38. package/build/types/generate/generateFoundryConfigJson.test.d.ts +1 -0
  39. package/build/types/generate/generateFoundryConfigJson.test.d.ts.map +1 -0
  40. package/build/types/generate/generateNpmRc.d.ts +4 -0
  41. package/build/types/generate/generateNpmRc.d.ts.map +1 -0
  42. package/build/types/generate/generateNpmRc.test.d.ts +1 -0
  43. package/build/types/generate/generateNpmRc.test.d.ts.map +1 -0
  44. package/build/{esm → types}/generatedNoCheck/templates.d.ts +0 -1
  45. package/build/types/generatedNoCheck/templates.d.ts.map +1 -0
  46. package/build/{esm → types}/getPackageFiles.d.ts +1 -2
  47. package/build/types/getPackageFiles.d.ts.map +1 -0
  48. package/build/{esm → types}/highlight.d.ts +0 -1
  49. package/build/types/highlight.d.ts.map +1 -0
  50. package/build/{esm → types}/index.d.ts +1 -2
  51. package/build/types/index.d.ts.map +1 -0
  52. package/build/{esm → types}/prompts/promptApplicationRid.d.ts +1 -2
  53. package/build/types/prompts/promptApplicationRid.d.ts.map +1 -0
  54. package/build/types/prompts/promptApplicationRid.test.d.ts +1 -0
  55. package/build/types/prompts/promptApplicationRid.test.d.ts.map +1 -0
  56. package/build/{esm → types}/prompts/promptApplicationUrl.d.ts +2 -3
  57. package/build/types/prompts/promptApplicationUrl.d.ts.map +1 -0
  58. package/build/types/prompts/promptApplicationUrl.test.d.ts +1 -0
  59. package/build/types/prompts/promptApplicationUrl.test.d.ts.map +1 -0
  60. package/build/{esm → types}/prompts/promptClientId.d.ts +1 -2
  61. package/build/types/prompts/promptClientId.d.ts.map +1 -0
  62. package/build/types/prompts/promptClientId.test.d.ts +1 -0
  63. package/build/types/prompts/promptClientId.test.d.ts.map +1 -0
  64. package/build/{esm → types}/prompts/promptCorsProxy.d.ts +1 -2
  65. package/build/types/prompts/promptCorsProxy.d.ts.map +1 -0
  66. package/build/types/prompts/promptCorsProxy.test.d.ts +1 -0
  67. package/build/types/prompts/promptCorsProxy.test.d.ts.map +1 -0
  68. package/build/{esm → types}/prompts/promptFoundryUrl.d.ts +1 -2
  69. package/build/types/prompts/promptFoundryUrl.d.ts.map +1 -0
  70. package/build/types/prompts/promptFoundryUrl.test.d.ts +1 -0
  71. package/build/types/prompts/promptFoundryUrl.test.d.ts.map +1 -0
  72. package/build/{esm → types}/prompts/promptOsdkPackage.d.ts +1 -2
  73. package/build/types/prompts/promptOsdkPackage.d.ts.map +1 -0
  74. package/build/types/prompts/promptOsdkPackage.test.d.ts +1 -0
  75. package/build/types/prompts/promptOsdkPackage.test.d.ts.map +1 -0
  76. package/build/{esm → types}/prompts/promptOsdkRegistryUrl.d.ts +1 -2
  77. package/build/types/prompts/promptOsdkRegistryUrl.d.ts.map +1 -0
  78. package/build/types/prompts/promptOsdkRegistryUrl.test.d.ts +1 -0
  79. package/build/types/prompts/promptOsdkRegistryUrl.test.d.ts.map +1 -0
  80. package/build/types/prompts/promptOverwrite.d.ts +4 -0
  81. package/build/types/prompts/promptOverwrite.d.ts.map +1 -0
  82. package/build/types/prompts/promptOverwrite.test.d.ts +1 -0
  83. package/build/types/prompts/promptOverwrite.test.d.ts.map +1 -0
  84. package/build/{esm → types}/prompts/promptProject.d.ts +1 -2
  85. package/build/types/prompts/promptProject.d.ts.map +1 -0
  86. package/build/types/prompts/promptProject.test.d.ts +1 -0
  87. package/build/types/prompts/promptProject.test.d.ts.map +1 -0
  88. package/build/{esm → types}/prompts/promptScopes.d.ts +1 -2
  89. package/build/types/prompts/promptScopes.d.ts.map +1 -0
  90. package/build/{esm → types}/prompts/promptSdkVersion.d.ts +2 -3
  91. package/build/types/prompts/promptSdkVersion.d.ts.map +1 -0
  92. package/build/{esm → types}/prompts/promptTemplate.d.ts +2 -3
  93. package/build/types/prompts/promptTemplate.d.ts.map +1 -0
  94. package/build/types/prompts/promptTemplate.test.d.ts +1 -0
  95. package/build/types/prompts/promptTemplate.test.d.ts.map +1 -0
  96. package/build/types/run.d.ts +17 -0
  97. package/build/types/run.d.ts.map +1 -0
  98. package/build/types/templates.d.ts +25 -0
  99. package/build/types/templates.d.ts.map +1 -0
  100. package/package.json +33 -28
  101. package/build/browser/esm-4QSCBEZC.js.map +0 -1
  102. package/build/browser/esm-F6Y6OKER.js.map +0 -1
  103. package/build/browser/esm-FXURBNU2.js +0 -421
  104. package/build/browser/esm-FXURBNU2.js.map +0 -1
  105. package/build/browser/esm-G7B67PJ6.js +0 -281
  106. package/build/browser/esm-G7B67PJ6.js.map +0 -1
  107. package/build/browser/esm-H2IADGOR.js +0 -1184
  108. package/build/browser/esm-H2IADGOR.js.map +0 -1
  109. package/build/browser/esm-IWXD7ZFP.js +0 -453
  110. package/build/browser/esm-IWXD7ZFP.js.map +0 -1
  111. package/build/browser/esm-LF7OTAKA.js +0 -394
  112. package/build/browser/esm-LF7OTAKA.js.map +0 -1
  113. package/build/browser/esm-PQDKPDBA.js +0 -903
  114. package/build/browser/esm-PQDKPDBA.js.map +0 -1
  115. package/build/browser/esm-S2OWTMMF.js.map +0 -1
  116. package/build/browser/esm-Y7D2PCM4.js.map +0 -1
  117. package/build/browser/index.js +0 -668
  118. package/build/browser/index.js.map +0 -1
  119. package/build/esm/cli.d.ts.map +0 -1
  120. package/build/esm/cli.test.d.ts +0 -2
  121. package/build/esm/cli.test.d.ts.map +0 -1
  122. package/build/esm/consola.d.ts.map +0 -1
  123. package/build/esm/esm-4QSCBEZC.js +0 -916
  124. package/build/esm/esm-4QSCBEZC.js.map +0 -1
  125. package/build/esm/esm-F6Y6OKER.js +0 -260
  126. package/build/esm/esm-F6Y6OKER.js.map +0 -1
  127. package/build/esm/esm-FXURBNU2.js.map +0 -1
  128. package/build/esm/esm-G7B67PJ6.js.map +0 -1
  129. package/build/esm/esm-H2IADGOR.js.map +0 -1
  130. package/build/esm/esm-IWXD7ZFP.js.map +0 -1
  131. package/build/esm/esm-LF7OTAKA.js.map +0 -1
  132. package/build/esm/esm-PQDKPDBA.js.map +0 -1
  133. package/build/esm/esm-S2OWTMMF.js +0 -383
  134. package/build/esm/esm-S2OWTMMF.js.map +0 -1
  135. package/build/esm/esm-Y7D2PCM4.js +0 -1171
  136. package/build/esm/esm-Y7D2PCM4.js.map +0 -1
  137. package/build/esm/generate/generateEnv.d.ts +0 -13
  138. package/build/esm/generate/generateEnv.d.ts.map +0 -1
  139. package/build/esm/generate/generateEnv.test.d.ts +0 -2
  140. package/build/esm/generate/generateEnv.test.d.ts.map +0 -1
  141. package/build/esm/generate/generateFoundryConfigJson.d.ts +0 -6
  142. package/build/esm/generate/generateFoundryConfigJson.d.ts.map +0 -1
  143. package/build/esm/generate/generateFoundryConfigJson.test.d.ts +0 -2
  144. package/build/esm/generate/generateFoundryConfigJson.test.d.ts.map +0 -1
  145. package/build/esm/generate/generateNpmRc.d.ts +0 -5
  146. package/build/esm/generate/generateNpmRc.d.ts.map +0 -1
  147. package/build/esm/generate/generateNpmRc.test.d.ts +0 -2
  148. package/build/esm/generate/generateNpmRc.test.d.ts.map +0 -1
  149. package/build/esm/generatedNoCheck/templates.d.ts.map +0 -1
  150. package/build/esm/getPackageFiles.d.ts.map +0 -1
  151. package/build/esm/highlight.d.ts.map +0 -1
  152. package/build/esm/index.d.ts.map +0 -1
  153. package/build/esm/prompts/promptApplicationRid.d.ts.map +0 -1
  154. package/build/esm/prompts/promptApplicationRid.test.d.ts +0 -2
  155. package/build/esm/prompts/promptApplicationRid.test.d.ts.map +0 -1
  156. package/build/esm/prompts/promptApplicationUrl.d.ts.map +0 -1
  157. package/build/esm/prompts/promptApplicationUrl.test.d.ts +0 -2
  158. package/build/esm/prompts/promptApplicationUrl.test.d.ts.map +0 -1
  159. package/build/esm/prompts/promptClientId.d.ts.map +0 -1
  160. package/build/esm/prompts/promptClientId.test.d.ts +0 -2
  161. package/build/esm/prompts/promptClientId.test.d.ts.map +0 -1
  162. package/build/esm/prompts/promptCorsProxy.d.ts.map +0 -1
  163. package/build/esm/prompts/promptCorsProxy.test.d.ts +0 -2
  164. package/build/esm/prompts/promptCorsProxy.test.d.ts.map +0 -1
  165. package/build/esm/prompts/promptFoundryUrl.d.ts.map +0 -1
  166. package/build/esm/prompts/promptFoundryUrl.test.d.ts +0 -2
  167. package/build/esm/prompts/promptFoundryUrl.test.d.ts.map +0 -1
  168. package/build/esm/prompts/promptOsdkPackage.d.ts.map +0 -1
  169. package/build/esm/prompts/promptOsdkPackage.test.d.ts +0 -2
  170. package/build/esm/prompts/promptOsdkPackage.test.d.ts.map +0 -1
  171. package/build/esm/prompts/promptOsdkRegistryUrl.d.ts.map +0 -1
  172. package/build/esm/prompts/promptOsdkRegistryUrl.test.d.ts +0 -2
  173. package/build/esm/prompts/promptOsdkRegistryUrl.test.d.ts.map +0 -1
  174. package/build/esm/prompts/promptOverwrite.d.ts +0 -5
  175. package/build/esm/prompts/promptOverwrite.d.ts.map +0 -1
  176. package/build/esm/prompts/promptOverwrite.test.d.ts +0 -2
  177. package/build/esm/prompts/promptOverwrite.test.d.ts.map +0 -1
  178. package/build/esm/prompts/promptProject.d.ts.map +0 -1
  179. package/build/esm/prompts/promptProject.test.d.ts +0 -2
  180. package/build/esm/prompts/promptProject.test.d.ts.map +0 -1
  181. package/build/esm/prompts/promptScopes.d.ts.map +0 -1
  182. package/build/esm/prompts/promptSdkVersion.d.ts.map +0 -1
  183. package/build/esm/prompts/promptTemplate.d.ts.map +0 -1
  184. package/build/esm/prompts/promptTemplate.test.d.ts +0 -2
  185. package/build/esm/prompts/promptTemplate.test.d.ts.map +0 -1
  186. package/build/esm/run.d.ts +0 -18
  187. package/build/esm/run.d.ts.map +0 -1
  188. package/build/esm/templates.d.ts +0 -28
  189. package/build/esm/templates.d.ts.map +0 -1
@@ -1,668 +0,0 @@
1
- import yargs from 'yargs';
2
- import { hideBin } from 'yargs/helpers';
3
- import { createConsola, consola as consola$1 } from 'consola';
4
- import { colorize } from 'consola/utils';
5
- import fs2 from 'fs';
6
- import path2 from 'path';
7
- import { findUpSync } from 'find-up';
8
- import Handlebars from 'handlebars';
9
- import { fileURLToPath } from 'url';
10
-
11
- // src/cli.ts
12
- var consola = createConsola({
13
- // https://github.com/unjs/consola/issues/251
14
- async prompt(...params) {
15
- const response = await consola$1.prompt(...params);
16
- if (typeof response === "symbol" && response.toString() === "Symbol(clack:cancel)") {
17
- consola$1.fail("Operation cancelled");
18
- process.exit(0);
19
- }
20
- return response;
21
- }
22
- });
23
- function green(text) {
24
- return colorize("green", text);
25
- }
26
- function italic(text) {
27
- return colorize("italic", text);
28
- }
29
-
30
- // src/prompts/promptApplicationRid.ts
31
- async function promptApplicationRid({
32
- application
33
- }) {
34
- while (application == null || !/^ri\.third-party-applications\.[^.]+\.application\.[^.]+$/.test(application)) {
35
- if (application != null) {
36
- consola.fail("Please enter a valid application resource identifier (rid)");
37
- }
38
- application = await consola.prompt(`Enter the application resource identifier (rid) for your application from Developer Console:
39
- ${italic("(Example: ri.third-party-applications.main.application.1c66b352-4e00-40d2-995d-061c9d533ace)")}`, {
40
- type: "text"
41
- });
42
- }
43
- return application;
44
- }
45
-
46
- // src/prompts/promptApplicationUrl.ts
47
- async function promptApplicationUrl({
48
- skipApplicationUrl,
49
- applicationUrl
50
- }) {
51
- if (skipApplicationUrl) {
52
- return void 0;
53
- }
54
- if (applicationUrl == null) {
55
- const skip = await consola.prompt(
56
- `Do you know the URL your production application will be hosted on? This is required to create a production build of your application with the correct OAuth redirect URL.`,
57
- {
58
- type: "select",
59
- options: [{
60
- label: "Yes, let me fill it here",
61
- value: "yes"
62
- }, {
63
- label: "No, I will fill it in later following the instructions in the generated README",
64
- value: "no"
65
- }]
66
- }
67
- // Types for "select" are wrong the value is returned rather than the option object
68
- // https://github.com/unjs/consola/pull/238
69
- );
70
- if (skip === "no") {
71
- return void 0;
72
- }
73
- }
74
- while (applicationUrl == null || !/^https?:\/\//.test(applicationUrl)) {
75
- if (applicationUrl != null) {
76
- consola.fail("Please enter a valid application URL");
77
- }
78
- applicationUrl = await consola.prompt(`Enter the URL your production application will be hosted on:
79
- ${italic("(Example: https://myapp.example.palantirfoundry.com)")}`, {
80
- type: "text"
81
- });
82
- }
83
- return applicationUrl.replace(/\/$/, "");
84
- }
85
-
86
- // src/prompts/promptClientId.ts
87
- async function promptClientId({
88
- clientId
89
- }) {
90
- while (clientId == null || !/^[0-9a-f]+$/.test(clientId)) {
91
- if (clientId != null) {
92
- consola.fail("Please enter a valid OAuth client ID");
93
- }
94
- clientId = await consola.prompt(`Enter the OAuth client ID for your application from Developer Console:
95
- ${italic("(Example: 2650385ab6c5e0df3b44aff776b00a42)")}`, {
96
- type: "text"
97
- });
98
- }
99
- return clientId;
100
- }
101
-
102
- // src/prompts/promptCorsProxy.ts
103
- async function promptCorsProxy({
104
- corsProxy
105
- }) {
106
- if (corsProxy != null) {
107
- return corsProxy;
108
- }
109
- return consola.prompt(`Include a CORS proxy for Foundry API requests during local development?
110
- ${italic("This is required if your enrollment has not allowed localhost for CORS.")}`, {
111
- type: "confirm",
112
- initial: false
113
- });
114
- }
115
-
116
- // src/prompts/promptFoundryUrl.ts
117
- async function promptFoundryUrl({
118
- foundryUrl
119
- }) {
120
- while (foundryUrl == null || !foundryUrl.startsWith("https://")) {
121
- if (foundryUrl != null) {
122
- consola.fail("Please enter a valid Foundry URL");
123
- }
124
- foundryUrl = await consola.prompt(`Enter the URL for your Foundry stack:
125
- ${italic("(Example: https://example.palantirfoundry.com)")}`, {
126
- type: "text"
127
- });
128
- }
129
- return foundryUrl.replace(/\/$/, "");
130
- }
131
-
132
- // src/prompts/promptOsdkPackage.ts
133
- async function promptOsdkPackage({
134
- osdkPackage
135
- }) {
136
- while (osdkPackage == null || !/^@[a-z0-9-]+\/sdk$/.test(osdkPackage)) {
137
- if (osdkPackage != null) {
138
- consola.fail("Please enter a valid OSDK package name");
139
- }
140
- osdkPackage = await consola.prompt(`Enter the OSDK package name for your application from Developer Console:
141
- ${italic("(Example: @my-app/sdk)")}`, {
142
- type: "text"
143
- });
144
- }
145
- return osdkPackage;
146
- }
147
-
148
- // src/prompts/promptOsdkRegistryUrl.ts
149
- async function promptOsdkRegistryUrl({
150
- osdkRegistryUrl
151
- }) {
152
- while (osdkRegistryUrl == null || !/^https:\/\/[^/]+\/artifacts\/api\/repositories\/ri\.artifacts\.[^/]+\/contents\/release\/npm\/?$/.test(osdkRegistryUrl)) {
153
- if (osdkRegistryUrl != null) {
154
- consola.fail("Please enter a valid NPM registry URL to install your OSDK package");
155
- }
156
- osdkRegistryUrl = await consola.prompt(`Enter the NPM registry URL to install your OSDK package from Developer Console:
157
- ${italic("(Example: https://example.palantirfoundry.com/artifacts/api/repositories/ri.artifacts.main.repository.a4a7fe1c-486f-4226-b706-7b90005f527d/contents/release/npm)")}`, {
158
- type: "text"
159
- });
160
- }
161
- return osdkRegistryUrl.replace(/\/$/, "");
162
- }
163
- async function promptOverwrite({
164
- project,
165
- overwrite
166
- }) {
167
- if (overwrite != null) {
168
- return overwrite;
169
- }
170
- if (!fs2.existsSync(path2.join(process.cwd(), project))) {
171
- return true;
172
- }
173
- const result = await consola.prompt(
174
- `The directory ${green(project)} already exists do you want to overwrite or ignore it?`,
175
- {
176
- type: "select",
177
- options: [{
178
- label: "Remove existing files and continue",
179
- value: "overwrite"
180
- }, {
181
- label: "Ignore files and continue",
182
- value: "ignore"
183
- }, {
184
- label: "Cancel",
185
- value: "cancel"
186
- }]
187
- }
188
- // Types for "select" are wrong the value is returned rather than the option object
189
- // https://github.com/unjs/consola/pull/238
190
- );
191
- switch (result) {
192
- case "overwrite":
193
- return true;
194
- case "ignore":
195
- return false;
196
- case "cancel":
197
- consola.fail("Operation cancelled");
198
- process.exit(0);
199
- }
200
- }
201
-
202
- // src/prompts/promptProject.ts
203
- async function promptProject({
204
- project
205
- }) {
206
- while (project == null || !/^[a-zA-Z0-9-_]+$/.test(project)) {
207
- if (project != null) {
208
- consola.fail("Project name can only contain alphanumeric characters, hyphens and underscores");
209
- }
210
- project = await consola.prompt("Project name:", {
211
- type: "text",
212
- placeholder: "my-osdk-app",
213
- default: "my-osdk-app"
214
- });
215
- }
216
- return project;
217
- }
218
-
219
- // src/prompts/promptScopes.ts
220
- var scopeNameRegex = /^[a-zA-Z-_:]+$/;
221
- async function promptScopes({
222
- scopes
223
- }) {
224
- if (scopes == null) {
225
- return void 0;
226
- }
227
- while (true) {
228
- const invalidScopes = scopes.filter((scope) => !scopeNameRegex.test(scope));
229
- const allValidScopes = invalidScopes.length === 0;
230
- if (allValidScopes) {
231
- break;
232
- }
233
- const joinedInvalidScopes = invalidScopes.join(", ");
234
- consola.fail(`Scopes [ ${joinedInvalidScopes} ] are invalid. Scope names can only contain letters, hyphens, underscores, and colons`);
235
- const stringScopes = await consola.prompt("Scopes:", {
236
- type: "text",
237
- placeholder: "api:ontologies-read api:ontologies-write",
238
- default: "api:ontologies-read api:ontologies-write"
239
- });
240
- scopes = stringScopes.split(" ");
241
- }
242
- return deduplicateScopes(scopes);
243
- }
244
- function deduplicateScopes(scopes) {
245
- const dedupedScopes = [];
246
- const seen = /* @__PURE__ */ new Set();
247
- for (const scope of scopes) {
248
- if (seen.has(scope)) {
249
- continue;
250
- }
251
- dedupedScopes.push(scope);
252
- seen.add(scope);
253
- }
254
- return dedupedScopes;
255
- }
256
-
257
- // src/prompts/promptSdkVersion.ts
258
- async function promptSdkVersion({
259
- sdkVersion,
260
- template
261
- }) {
262
- if (sdkVersion == null) {
263
- return Object.keys(template.files)[0];
264
- }
265
- if (template.files[sdkVersion] == null) {
266
- consola.fail(`The ${template.label} template does not support a "${sdkVersion}" SDK version.`);
267
- sdkVersion = await consola.prompt(
268
- `Please choose which version of the OSDK you'd like to use for the ${template.label} template:`,
269
- {
270
- type: "select",
271
- options: Object.keys(template.files).reverse().map((sdkVersion2) => ({
272
- label: sdkVersion2,
273
- value: sdkVersion2
274
- }))
275
- }
276
- // Types for "select" are wrong the value is returned rather than the option object
277
- // https://github.com/unjs/consola/pull/238
278
- );
279
- }
280
- return sdkVersion;
281
- }
282
-
283
- // src/getPackageFiles.ts
284
- var getPackageFiles = (importPromise) => async () => (await importPromise).files;
285
-
286
- // src/generatedNoCheck/templates.ts
287
- var TEMPLATES = [
288
- // React
289
- {
290
- id: "template-react",
291
- label: "React",
292
- envPrefix: "VITE_",
293
- buildDirectory: "./dist",
294
- files: {
295
- "1.x": getPackageFiles(import('./esm-IWXD7ZFP.js')),
296
- "2.x": getPackageFiles(import('./esm-S2OWTMMF.js'))
297
- }
298
- },
299
- // Vue
300
- {
301
- id: "template-vue",
302
- label: "Vue",
303
- envPrefix: "VITE_",
304
- buildDirectory: "./dist",
305
- files: {
306
- "1.x": getPackageFiles(import('./esm-F6Y6OKER.js')),
307
- "2.x": getPackageFiles(import('./esm-G7B67PJ6.js'))
308
- }
309
- },
310
- // Next (static export)
311
- {
312
- id: "template-next-static-export",
313
- label: "Next (static export)",
314
- envPrefix: "NEXT_PUBLIC_",
315
- buildDirectory: "./out",
316
- files: {
317
- "1.x": getPackageFiles(import('./esm-LF7OTAKA.js')),
318
- "2.x": getPackageFiles(import('./esm-FXURBNU2.js'))
319
- }
320
- },
321
- // Tutorial: To do App
322
- {
323
- id: "template-tutorial-todo-app",
324
- label: "Tutorial: To do App",
325
- envPrefix: "VITE_",
326
- buildDirectory: "./dist",
327
- files: {
328
- "1.x": getPackageFiles(import('./esm-PQDKPDBA.js')),
329
- "2.x": getPackageFiles(import('./esm-4QSCBEZC.js'))
330
- }
331
- },
332
- // Tutorial: To do AIP App
333
- {
334
- id: "template-tutorial-todo-aip-app",
335
- label: "Tutorial: To do AIP App",
336
- envPrefix: "VITE_",
337
- buildDirectory: "./dist",
338
- files: {
339
- "1.x": getPackageFiles(import('./esm-Y7D2PCM4.js')),
340
- "2.x": getPackageFiles(import('./esm-H2IADGOR.js'))
341
- }
342
- }
343
- ];
344
-
345
- // src/prompts/promptTemplate.ts
346
- async function promptTemplate(parsed) {
347
- let useBeta = parsed.beta ?? false;
348
- let template = TEMPLATES.find((t) => t.id === parsed.template || t.id === `template-${parsed.template}`);
349
- if (template == null) {
350
- const availableTemplates = TEMPLATES.filter((template2) => !template2.hidden && (useBeta ? template2.isBeta === true : !template2.isBeta));
351
- if (availableTemplates.length === 0) {
352
- throw new Error("No available templates found for the selected options.");
353
- }
354
- const templateId = await consola.prompt(parsed.template != null ? `The provided template ${green(parsed.template)} is invalid please select a framework:` : "Select a framework:", {
355
- type: "select",
356
- options: availableTemplates.map((template2) => ({
357
- value: template2.id,
358
- label: template2.label
359
- }))
360
- // Types for "select" are wrong the value is returned rather than the option object
361
- // https://github.com/unjs/consola/pull/238
362
- });
363
- template = TEMPLATES.find((t) => t.id === templateId);
364
- if (template == null) {
365
- throw new Error(`Template ${templateId} should be found`);
366
- }
367
- }
368
- return template;
369
- }
370
-
371
- // ../generator-utils/build/esm/changeVersionPrefix.js
372
- function changeVersionPrefix(version, prefix) {
373
- const isWorkspaceProtocol = version.startsWith("workspace:");
374
- if (isWorkspaceProtocol) {
375
- version = version.slice("workspace:".length);
376
- }
377
- if (version[0] === "^" || version[0] === "~" || version[0] === "*") {
378
- version = version.slice(1);
379
- }
380
- return `${isWorkspaceProtocol ? "workspace:" : ""}${prefix}${version}`;
381
- }
382
-
383
- // ../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js
384
- process.env.NODE_ENV === "production";
385
-
386
- // src/generate/generateEnv.ts
387
- function generateEnvDevelopment({
388
- envPrefix,
389
- foundryUrl,
390
- clientId,
391
- corsProxy
392
- }) {
393
- return generateEnv({
394
- envPrefix,
395
- foundryUrl: corsProxy ? "http://localhost:8080" : foundryUrl,
396
- applicationUrl: "http://localhost:8080",
397
- clientId
398
- });
399
- }
400
- function generateEnvProduction({
401
- envPrefix,
402
- foundryUrl,
403
- applicationUrl,
404
- clientId
405
- }) {
406
- return generateEnv({
407
- envPrefix,
408
- foundryUrl,
409
- applicationUrl,
410
- clientId
411
- });
412
- }
413
- function generateEnv({
414
- envPrefix,
415
- foundryUrl,
416
- applicationUrl,
417
- clientId
418
- }) {
419
- return `${envPrefix}FOUNDRY_API_URL=${foundryUrl}
420
- ${applicationUrl == null ? "# " : ""}${envPrefix}FOUNDRY_REDIRECT_URL=${applicationUrl ?? "<Fill in the domain at which you deploy your application>"}/auth/callback
421
- ${envPrefix}FOUNDRY_CLIENT_ID=${clientId}
422
- `;
423
- }
424
-
425
- // src/generate/generateFoundryConfigJson.ts
426
- function generateFoundryConfigJson({
427
- foundryUrl,
428
- application,
429
- directory
430
- }) {
431
- return JSON.stringify({
432
- foundryUrl,
433
- site: {
434
- application,
435
- directory,
436
- autoVersion: {
437
- type: "git-describe",
438
- tagPrefix: ""
439
- }
440
- }
441
- }, null, 2) + "\n";
442
- }
443
-
444
- // src/generate/generateNpmRc.ts
445
- function generateNpmRc({
446
- osdkPackage,
447
- osdkRegistryUrl
448
- }) {
449
- const withTrailingSlash = osdkRegistryUrl.endsWith("/") ? osdkRegistryUrl : osdkRegistryUrl + "/";
450
- const withoutProtocol = withTrailingSlash.replace(/^https:\/\//, "");
451
- const packageScope = osdkPackage.split("/")[0];
452
- return `//${withoutProtocol}:_authToken=\${FOUNDRY_TOKEN}
453
- ${packageScope}:registry=${withTrailingSlash}
454
- `;
455
- }
456
-
457
- // src/run.ts
458
- async function run({
459
- project,
460
- overwrite,
461
- template,
462
- sdkVersion,
463
- foundryUrl,
464
- applicationUrl,
465
- application,
466
- clientId,
467
- osdkPackage,
468
- osdkRegistryUrl,
469
- corsProxy,
470
- scopes
471
- }) {
472
- consola.log("");
473
- consola.start(`Creating project ${green(project)} using template ${green(template.id)}`);
474
- const cwd = process.cwd();
475
- const root = path2.join(cwd, project);
476
- if (fs2.existsSync(root)) {
477
- if (overwrite) {
478
- consola.info(`Overwriting existing project directory`);
479
- fs2.rmSync(root, {
480
- recursive: true,
481
- force: true
482
- });
483
- fs2.mkdirSync(root, {
484
- recursive: true
485
- });
486
- } else {
487
- consola.info(`Reusing existing project directory`);
488
- }
489
- } else {
490
- consola.info(`Creating project directory`);
491
- fs2.mkdirSync(root, {
492
- recursive: true
493
- });
494
- }
495
- consola.info(`Copying files into project directory`);
496
- if (template.files[sdkVersion] == null) {
497
- throw new Error(`The ${template.label} template does not support a "${sdkVersion}" SDK version.`);
498
- }
499
- const files = await template.files[sdkVersion]();
500
- for (const [filePath, contents] of files) {
501
- const finalPath = path2.join(root, filePath);
502
- const dirPath = path2.dirname(finalPath);
503
- await fs2.promises.mkdir(dirPath, {
504
- recursive: true
505
- });
506
- await fs2.promises.writeFile(finalPath, Buffer.from(contents.body, contents.type === "raw" ? "utf-8" : "base64"));
507
- }
508
- const ourPackageJsonPath = findUpSync("package.json", {
509
- cwd: fileURLToPath(import.meta.url)
510
- });
511
- ourPackageJsonPath ? JSON.parse(fs2.readFileSync(ourPackageJsonPath, "utf-8")).version : void 0;
512
- const clientVersion = "2.1.0-beta.9";
513
- const templateContext = {
514
- project,
515
- foundryUrl,
516
- osdkPackage,
517
- corsProxy,
518
- clientVersion: changeVersionPrefix(clientVersion, "^"),
519
- scopes
520
- };
521
- const processFiles = function(dir) {
522
- fs2.readdirSync(dir).forEach(function(file) {
523
- file = dir + "/" + file;
524
- const stat = fs2.statSync(file);
525
- if (stat.isDirectory()) {
526
- processFiles(file);
527
- return;
528
- }
529
- if (file.endsWith("/_gitignore")) {
530
- fs2.renameSync(file, file.replace(/\/_gitignore$/, "/.gitignore"));
531
- return;
532
- }
533
- if (!file.endsWith(".hbs")) {
534
- return;
535
- }
536
- const templated = Handlebars.compile(fs2.readFileSync(file, "utf-8"))(templateContext);
537
- fs2.writeFileSync(file.replace(/.hbs$/, ""), templated);
538
- fs2.rmSync(file);
539
- });
540
- };
541
- processFiles(root);
542
- const npmRc = generateNpmRc({
543
- osdkPackage,
544
- osdkRegistryUrl
545
- });
546
- fs2.writeFileSync(path2.join(root, ".npmrc"), npmRc);
547
- const envDevelopment = generateEnvDevelopment({
548
- envPrefix: template.envPrefix,
549
- foundryUrl,
550
- clientId,
551
- corsProxy
552
- });
553
- fs2.writeFileSync(path2.join(root, ".env.development"), envDevelopment);
554
- const envProduction = generateEnvProduction({
555
- envPrefix: template.envPrefix,
556
- foundryUrl,
557
- applicationUrl,
558
- clientId
559
- });
560
- fs2.writeFileSync(path2.join(root, ".env.production"), envProduction);
561
- const foundryConfigJson = generateFoundryConfigJson({
562
- foundryUrl,
563
- application,
564
- directory: template.buildDirectory
565
- });
566
- fs2.writeFileSync(path2.join(root, "foundry.config.json"), foundryConfigJson);
567
- consola.success("Success");
568
- const cdRelative = path2.relative(cwd, root);
569
- consola.box({
570
- message: `Done! Run the following commands to get started:
571
-
572
- \`cd ${cdRelative}\`
573
- \`export FOUNDRY_TOKEN=<token>\`
574
- \`npm install\`
575
- \`npm run dev\``,
576
- style: {
577
- padding: 2,
578
- borderColor: "green",
579
- borderStyle: "rounded"
580
- }
581
- });
582
- }
583
-
584
- // src/cli.ts
585
- async function cli(args = process.argv) {
586
- const base = yargs(hideBin(args)).version("2.1.0-beta.9").wrap(Math.min(150, yargs().terminalWidth())).strict().help().command("$0 [project] [--<option>]", "Create a new OSDK application based on framework templates. Information may be provided through options to skip interactive prompts.", (yargs2) => yargs2.positional("project", {
587
- type: "string",
588
- describe: "Project name to create"
589
- }).option("overwrite", {
590
- type: "boolean",
591
- describe: "Overwrite project directory if already exists"
592
- }).option("beta", {
593
- type: "boolean",
594
- describe: "Use templates compatible with the Beta version of the SDK"
595
- }).option("template", {
596
- type: "string",
597
- describe: "Template name to use"
598
- }).option("sdkVersion", {
599
- type: "string",
600
- describe: "The OSDK version to use"
601
- }).option("foundryUrl", {
602
- type: "string",
603
- describe: "URL for the Foundry stack"
604
- }).option("applicationUrl", {
605
- type: "string",
606
- describe: "URL the production application will be hosted on",
607
- conflicts: "skipApplicationUrl"
608
- }).option("skipApplicationUrl", {
609
- type: "boolean",
610
- describe: "Skip filling in URL the production application will be hosted on"
611
- }).option("application", {
612
- type: "string",
613
- describe: "Application resource identifier (rid)"
614
- }).option("clientId", {
615
- type: "string",
616
- describe: "OAuth client ID for application"
617
- }).option("osdkPackage", {
618
- type: "string",
619
- describe: "OSDK package name for application"
620
- }).option("osdkRegistryUrl", {
621
- type: "string",
622
- describe: "URL for NPM registry to install OSDK package"
623
- }).option("corsProxy", {
624
- type: "boolean",
625
- describe: "Include a CORS proxy for Foundry API requests during local development"
626
- }).option("scopes", {
627
- type: "string",
628
- array: true,
629
- describe: "List of client-side scopes to be used when creating a client"
630
- }));
631
- const parsed = base.parseSync();
632
- const project = await promptProject(parsed);
633
- const overwrite = await promptOverwrite({
634
- ...parsed,
635
- project
636
- });
637
- const template = await promptTemplate(parsed);
638
- const sdkVersion = await promptSdkVersion({
639
- ...parsed,
640
- template
641
- });
642
- const foundryUrl = await promptFoundryUrl(parsed);
643
- const applicationUrl = await promptApplicationUrl(parsed);
644
- const application = await promptApplicationRid(parsed);
645
- const clientId = await promptClientId(parsed);
646
- const osdkPackage = await promptOsdkPackage(parsed);
647
- const osdkRegistryUrl = await promptOsdkRegistryUrl(parsed);
648
- const corsProxy = await promptCorsProxy(parsed);
649
- const scopes = await promptScopes(parsed);
650
- await run({
651
- project,
652
- overwrite,
653
- template,
654
- sdkVersion,
655
- foundryUrl,
656
- applicationUrl,
657
- application,
658
- clientId,
659
- osdkPackage,
660
- osdkRegistryUrl,
661
- corsProxy,
662
- scopes
663
- });
664
- }
665
-
666
- export { TEMPLATES, cli, run };
667
- //# sourceMappingURL=index.js.map
668
- //# sourceMappingURL=index.js.map