@supatype/cli 0.1.0-alpha.10 → 0.1.0-alpha.12
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +98 -65
- package/.turbo/turbo-typecheck.log +1 -1
- package/dist/app/framework.js +1 -3
- package/dist/app/framework.js.map +1 -1
- package/dist/app/proxy-dev-app.d.ts +14 -0
- package/dist/app/proxy-dev-app.d.ts.map +1 -1
- package/dist/app/proxy-dev-app.js +109 -6
- package/dist/app/proxy-dev-app.js.map +1 -1
- package/dist/binary-cache.d.ts +1 -1
- package/dist/binary-cache.d.ts.map +1 -1
- package/dist/binary-cache.js +6 -1
- package/dist/binary-cache.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts +3 -0
- package/dist/commands/adopt.d.ts.map +1 -0
- package/dist/commands/adopt.js +58 -0
- package/dist/commands/adopt.js.map +1 -0
- package/dist/commands/cloud.d.ts +4 -9
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +49 -91
- package/dist/commands/cloud.js.map +1 -1
- package/dist/commands/db.d.ts.map +1 -1
- package/dist/commands/db.js +25 -47
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +117 -74
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +21 -3
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +37 -37
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +77 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/functions.d.ts.map +1 -1
- package/dist/commands/functions.js +80 -33
- package/dist/commands/functions.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +26 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/introspect.d.ts +3 -0
- package/dist/commands/introspect.d.ts.map +1 -0
- package/dist/commands/introspect.js +34 -0
- package/dist/commands/introspect.js.map +1 -0
- package/dist/commands/link-helpers.d.ts +15 -0
- package/dist/commands/link-helpers.d.ts.map +1 -0
- package/dist/commands/link-helpers.js +187 -0
- package/dist/commands/link-helpers.js.map +1 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +116 -14
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +32 -5
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +102 -129
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +93 -29
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +6 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/dev-compose.d.ts +23 -0
- package/dist/dev-compose.d.ts.map +1 -1
- package/dist/dev-compose.js +183 -6
- package/dist/dev-compose.js.map +1 -1
- package/dist/diff-output.d.ts +5 -1
- package/dist/diff-output.d.ts.map +1 -1
- package/dist/diff-output.js +69 -0
- package/dist/diff-output.js.map +1 -1
- package/dist/engine-client.d.ts +10 -1
- package/dist/engine-client.d.ts.map +1 -1
- package/dist/engine-client.js +64 -13
- package/dist/engine-client.js.map +1 -1
- package/dist/engine-push-output.d.ts +1 -0
- package/dist/engine-push-output.d.ts.map +1 -1
- package/dist/engine-push-output.js +4 -1
- package/dist/engine-push-output.js.map +1 -1
- package/dist/gitignore.d.ts +8 -0
- package/dist/gitignore.d.ts.map +1 -0
- package/dist/gitignore.js +41 -0
- package/dist/gitignore.js.map +1 -0
- package/dist/link.d.ts +66 -0
- package/dist/link.d.ts.map +1 -0
- package/dist/link.js +159 -0
- package/dist/link.js.map +1 -0
- package/dist/process-manager.d.ts +2 -0
- package/dist/process-manager.d.ts.map +1 -1
- package/dist/process-manager.js +2 -0
- package/dist/process-manager.js.map +1 -1
- package/dist/project-config.d.ts +8 -0
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js.map +1 -1
- package/dist/pull-utils.d.ts +50 -14
- package/dist/pull-utils.d.ts.map +1 -1
- package/dist/pull-utils.js +152 -12
- package/dist/pull-utils.js.map +1 -1
- package/dist/resolve-target.d.ts +86 -0
- package/dist/resolve-target.d.ts.map +1 -0
- package/dist/resolve-target.js +291 -0
- package/dist/resolve-target.js.map +1 -0
- package/dist/runtime-routes.d.ts.map +1 -1
- package/dist/runtime-routes.js +7 -0
- package/dist/runtime-routes.js.map +1 -1
- package/dist/schema-ast-v2.d.ts +1 -1
- package/dist/schema-ast-v2.d.ts.map +1 -1
- package/dist/schema-ast-v2.js +2 -2
- package/dist/schema-ast-v2.js.map +1 -1
- package/dist/schema-sources.d.ts +40 -0
- package/dist/schema-sources.d.ts.map +1 -0
- package/dist/schema-sources.js +183 -0
- package/dist/schema-sources.js.map +1 -0
- package/dist/self-host-compose.d.ts +10 -0
- package/dist/self-host-compose.d.ts.map +1 -1
- package/dist/self-host-compose.js +85 -3
- package/dist/self-host-compose.js.map +1 -1
- package/dist/storage-provision.d.ts +4 -0
- package/dist/storage-provision.d.ts.map +1 -1
- package/dist/storage-provision.js +24 -2
- package/dist/storage-provision.js.map +1 -1
- package/dist/target-client.d.ts +10 -0
- package/dist/target-client.d.ts.map +1 -0
- package/dist/target-client.js +22 -0
- package/dist/target-client.js.map +1 -0
- package/dist/type-extractor.d.ts +11 -0
- package/dist/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor.js +95 -8
- package/dist/type-extractor.js.map +1 -1
- package/package.json +1 -1
- package/src/app/framework.ts +1 -3
- package/src/app/proxy-dev-app.ts +113 -6
- package/src/binary-cache.ts +6 -1
- package/src/cli.ts +6 -0
- package/src/commands/adopt.ts +83 -0
- package/src/commands/cloud.ts +66 -108
- package/src/commands/db.ts +28 -52
- package/src/commands/deploy.ts +162 -104
- package/src/commands/dev.ts +24 -10
- package/src/commands/diff.ts +40 -41
- package/src/commands/doctor.ts +102 -0
- package/src/commands/functions.ts +95 -37
- package/src/commands/init.ts +25 -4
- package/src/commands/introspect.ts +47 -0
- package/src/commands/link-helpers.ts +228 -0
- package/src/commands/migrate.ts +163 -15
- package/src/commands/pull.ts +37 -9
- package/src/commands/push.ts +132 -166
- package/src/commands/status.ts +100 -33
- package/src/commands/update.ts +6 -2
- package/src/config.ts +2 -1
- package/src/dev-compose.ts +240 -6
- package/src/diff-output.ts +79 -1
- package/src/engine-client.ts +70 -13
- package/src/engine-push-output.ts +7 -3
- package/src/gitignore.ts +48 -0
- package/src/link.ts +242 -0
- package/src/process-manager.ts +4 -0
- package/src/project-config.ts +8 -0
- package/src/pull-utils.ts +217 -23
- package/src/resolve-target.ts +419 -0
- package/src/runtime-routes.ts +7 -0
- package/src/schema-ast-v2.ts +2 -1
- package/src/schema-sources.ts +248 -0
- package/src/self-host-compose.ts +87 -3
- package/src/storage-provision.ts +33 -1
- package/src/target-client.ts +40 -0
- package/src/type-extractor.ts +124 -11
- package/tests/cli-help.test.ts +27 -2
- package/tests/init.test.ts +1 -1
- package/tests/link.test.ts +148 -0
- package/tests/proxy-dev-app.test.ts +45 -1
- package/tests/pull-utils.test.ts +5 -4
- package/tests/runtime-contract.test.ts +44 -1
- package/tests/schema-sources.test.ts +119 -0
- package/tests/storage-provision.test.ts +100 -0
- package/tsconfig.tsbuildinfo +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @supatype/cli@0.1.0-alpha.
|
|
2
|
+
> @supatype/cli@0.1.0-alpha.12 build /home/runner/work/supatype/supatype/packages/cli
|
|
3
3
|
> tsc --project tsconfig.json && node --input-type=module -e "import{cpSync,mkdirSync}from'node:fs';const a='dist/assets';mkdirSync(a,{recursive:true});cpSync('assets/supatype-logo-wordmark.ascii.txt',a+'/supatype-logo-wordmark.ascii.txt')"
|
|
4
4
|
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
|
|
2
|
-
> @supatype/cli@0.1.0-alpha.
|
|
2
|
+
> @supatype/cli@0.1.0-alpha.12 test /home/runner/work/supatype/supatype/packages/cli
|
|
3
3
|
> vitest run
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv4.0.18 [39m[90m/home/runner/work/supatype/supatype/packages/cli[39m
|
|
7
7
|
|
|
8
|
-
[32m✓[39m tests/
|
|
9
|
-
[32m✓[39m tests/
|
|
8
|
+
[32m✓[39m tests/runtime-contract.test.ts [2m([22m[2m32 tests[22m[2m)[22m[32m 153[2mms[22m[39m
|
|
9
|
+
[32m✓[39m tests/type-extractor.test.ts [2m([22m[2m34 tests[22m[2m)[22m[32m 154[2mms[22m[39m
|
|
10
|
+
[32m✓[39m tests/config.test.ts [2m([22m[2m16 tests[22m[2m)[22m[33m 4226[2mms[22m[39m
|
|
11
|
+
[33m[2m✓[22m[39m loads a valid supatype.config.ts (plain export default, no package imports) [33m 545[2mms[22m[39m
|
|
12
|
+
[33m[2m✓[22m[39m normalizes shorthand schema string to { path, pg_schema } [33m 495[2mms[22m[39m
|
|
13
|
+
[33m[2m✓[22m[39m loads a supatype.config.js (plain ESM) [33m 454[2mms[22m[39m
|
|
14
|
+
[33m[2m✓[22m[39m loads config without a versions section (latest by default) [33m 546[2mms[22m[39m
|
|
15
|
+
[33m[2m✓[22m[39m prefers supatype.config.ts over supatype.config.js when both exist [33m 539[2mms[22m[39m
|
|
16
|
+
[33m[2m✓[22m[39m supports optional output field in config [33m 575[2mms[22m[39m
|
|
17
|
+
[33m[2m✓[22m[39m merges supatype.local.config.ts over base [33m 1058[2mms[22m[39m
|
|
18
|
+
[90mstdout[2m | tests/link.test.ts[2m > [22m[2mlink model[2m > [22m[2mmigrates cloud.json into link.json
|
|
19
|
+
[22m[39m created package.json
|
|
20
|
+
created supatype.config.ts
|
|
21
|
+
created schema/index.ts
|
|
22
|
+
created .env
|
|
23
|
+
created seed.ts
|
|
24
|
+
created seeds/.gitkeep
|
|
25
|
+
created public/.gitkeep
|
|
26
|
+
created .gitignore
|
|
27
|
+
|
|
28
|
+
[90mstderr[2m | tests/link.test.ts[2m > [22m[2mlink model[2m > [22m[2mmigrates cloud.json into link.json
|
|
29
|
+
[22m[39mMigrated .supatype/cloud.json → .supatype/link.json (legacy files kept; remove manually when ready).
|
|
30
|
+
|
|
31
|
+
[32m✓[39m tests/link.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 2837[2mms[22m[39m
|
|
32
|
+
[33m[2m✓[22m[39m resolveTarget returns cloud mode with /api/v1 prefix [33m 929[2mms[22m[39m
|
|
33
|
+
[33m[2m✓[22m[39m resolveTarget returns self-host mode with /platform/v1 prefix [33m 922[2mms[22m[39m
|
|
34
|
+
[33m[2m✓[22m[39m targetSchemaRollback posts to /platform/v1 when linked [33m 973[2mms[22m[39m
|
|
10
35
|
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2mcreates all expected files
|
|
11
36
|
[22m[39m created package.json
|
|
12
37
|
created supatype.config.ts
|
|
@@ -125,36 +150,46 @@
|
|
|
125
150
|
created public/.gitkeep
|
|
126
151
|
created .gitignore
|
|
127
152
|
|
|
128
|
-
[32m✓[39m tests/init.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m
|
|
153
|
+
[32m✓[39m tests/init.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 43[2mms[22m[39m
|
|
154
|
+
|
|
155
|
+
|
|
129
156
|
|
|
130
157
|
|
|
158
|
+
[32m✓[39m tests/dev-ui.test.ts [2m([22m[2m15 tests[22m[2m)[22m[32m 69[2mms[22m[39m
|
|
131
159
|
|
|
160
|
+
[32m✓[39m tests/pull-utils.test.ts [2m([22m[2m49 tests[22m[2m)[22m[32m 19[2mms[22m[39m
|
|
161
|
+
[32m✓[39m tests/schema-sources.test.ts [2m([22m[2m5 tests[22m[2m)[22m[33m 1167[2mms[22m[39m
|
|
162
|
+
[33m[2m✓[22m[39m buildSchemaSourcesPayload includes manifest metadata [33m 572[2mms[22m[39m
|
|
163
|
+
[33m[2m✓[22m[39m restore overwrites modified local files [33m 548[2mms[22m[39m
|
|
164
|
+
[90mstderr[2m | tests/binary-cache-cloud-overrides.test.ts[2m > [22m[2misLinkedToCloudProject[2m > [22m[2mis true when .supatype/cloud.json has projectSlug
|
|
165
|
+
[22m[39mMigrated .supatype/cloud.json → .supatype/link.json (legacy files kept; remove manually when ready).
|
|
132
166
|
|
|
133
|
-
[32m✓[39m tests/
|
|
167
|
+
[32m✓[39m tests/binary-cache-cloud-overrides.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 19[2mms[22m[39m
|
|
168
|
+
[90mstdout[2m | tests/storage-provision.test.ts[2m > [22m[2mprovisionBuckets[2m > [22m[2mPOSTs each bucket to the storage API
|
|
169
|
+
[22m[39m[supatype] Storage bucket "photos" ready.
|
|
134
170
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
[33m[2m✓[22m[39m loads a supatype.config.js (plain ESM) [33m 475[2mms[22m[39m
|
|
140
|
-
[33m[2m✓[22m[39m loads config without a versions section (latest by default) [33m 499[2mms[22m[39m
|
|
141
|
-
[33m[2m✓[22m[39m prefers supatype.config.ts over supatype.config.js when both exist [33m 489[2mms[22m[39m
|
|
142
|
-
[33m[2m✓[22m[39m supports optional output field in config [33m 561[2mms[22m[39m
|
|
143
|
-
[33m[2m✓[22m[39m merges supatype.local.config.ts over base [33m 1027[2mms[22m[39m
|
|
144
|
-
[32m✓[39m tests/binary-cache-cloud-overrides.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 16[2mms[22m[39m
|
|
171
|
+
[90mstdout[2m | tests/storage-provision.test.ts[2m > [22m[2mprovisionBuckets[2m > [22m[2mPOSTs each bucket to the storage API
|
|
172
|
+
[22m[39m[supatype] Storage bucket "avatars" ready.
|
|
173
|
+
|
|
174
|
+
[32m✓[39m tests/storage-provision.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
145
175
|
[32m✓[39m tests/cached-artifact-format.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
146
|
-
[32m✓[39m tests/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
176
|
+
[32m✓[39m tests/proxy-dev-app.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
177
|
+
[32m✓[39m tests/keys.test.ts [2m([22m[2m11 tests[22m[2m)[22m[33m 12113[2mms[22m[39m
|
|
178
|
+
[33m[2m✓[22m[39m exits 0 with --secret [33m 1125[2mms[22m[39m
|
|
179
|
+
[33m[2m✓[22m[39m outputs ANON_KEY= line [33m 1052[2mms[22m[39m
|
|
180
|
+
[33m[2m✓[22m[39m outputs SERVICE_ROLE_KEY= line [33m 1027[2mms[22m[39m
|
|
181
|
+
[33m[2m✓[22m[39m ANON_KEY is a valid three-part JWT [33m 974[2mms[22m[39m
|
|
182
|
+
[33m[2m✓[22m[39m SERVICE_ROLE_KEY payload has role: service_role [33m 1018[2mms[22m[39m
|
|
183
|
+
[33m[2m✓[22m[39m JWT has exp in the future [33m 955[2mms[22m[39m
|
|
184
|
+
[33m[2m✓[22m[39m --exp-years changes the expiry window [33m 1996[2mms[22m[39m
|
|
185
|
+
[33m[2m✓[22m[39m reads JWT_SECRET from environment variable [33m 981[2mms[22m[39m
|
|
186
|
+
[33m[2m✓[22m[39m reads JWT_SECRET from .env file [33m 1027[2mms[22m[39m
|
|
187
|
+
[33m[2m✓[22m[39m exits non-zero when no secret is available [33m 990[2mms[22m[39m
|
|
188
|
+
[33m[2m✓[22m[39m keys --help shows --secret and --exp-years options [33m 961[2mms[22m[39m
|
|
154
189
|
[32m✓[39m tests/augmentation-generator.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 18[2mms[22m[39m
|
|
155
|
-
[32m✓[39m tests/type-resolver.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m
|
|
190
|
+
[32m✓[39m tests/type-resolver.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 19[2mms[22m[39m
|
|
156
191
|
[32m✓[39m tests/engine-push-output.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
157
|
-
[32m✓[39m tests/ensure-binary.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m
|
|
192
|
+
[32m✓[39m tests/ensure-binary.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 10[2mms[22m[39m
|
|
158
193
|
[90mstdout[2m | tests/app-command.test.ts[2m > [22m[2msupatype app add --static[2m > [22m[2msets app.mode=static and static_dir in supatype.config.ts
|
|
159
194
|
[22m[39m created package.json
|
|
160
195
|
created supatype.config.ts
|
|
@@ -165,6 +200,16 @@
|
|
|
165
200
|
created public/.gitkeep
|
|
166
201
|
created .gitignore
|
|
167
202
|
|
|
203
|
+
[32m✓[39m tests/tsx-runner.test.ts [2m([22m[2m7 tests[22m[2m)[22m[33m 2653[2mms[22m[39m
|
|
204
|
+
[33m[2m✓[22m[39m evaluates a simple expression and returns stdout [33m 363[2mms[22m[39m
|
|
205
|
+
[33m[2m✓[22m[39m evaluates TypeScript syntax (type annotations) [33m 349[2mms[22m[39m
|
|
206
|
+
[33m[2m✓[22m[39m can serialize a JSON object to stdout [33m 343[2mms[22m[39m
|
|
207
|
+
[33m[2m✓[22m[39m returns non-zero exit code on syntax error [33m 390[2mms[22m[39m
|
|
208
|
+
[33m[2m✓[22m[39m returns non-zero exit code on runtime error [33m 343[2mms[22m[39m
|
|
209
|
+
[33m[2m✓[22m[39m captures stderr separately from stdout [33m 407[2mms[22m[39m
|
|
210
|
+
[33m[2m✓[22m[39m runs a .ts file and returns its stdout [33m 455[2mms[22m[39m
|
|
211
|
+
[32m✓[39m tests/normalize-admin-config.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
212
|
+
[32m✓[39m tests/docker-postgres.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
168
213
|
[90mstdout[2m | tests/app-command.test.ts[2m > [22m[2msupatype app add --static[2m > [22m[2mcreates the static directory when missing
|
|
169
214
|
[22m[39m created package.json
|
|
170
215
|
created supatype.config.ts
|
|
@@ -175,47 +220,35 @@
|
|
|
175
220
|
created public/.gitkeep
|
|
176
221
|
created .gitignore
|
|
177
222
|
|
|
178
|
-
[32m✓[39m tests/
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
[32m✓[39m tests/proxy-dev-app.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
184
|
-
[32m✓[39m tests/keys.test.ts [2m([22m[2m11 tests[22m[2m)[22m[33m 12151[2mms[22m[39m
|
|
185
|
-
[33m[2m✓[22m[39m exits 0 with --secret [33m 1059[2mms[22m[39m
|
|
186
|
-
[33m[2m✓[22m[39m outputs ANON_KEY= line [33m 1070[2mms[22m[39m
|
|
187
|
-
[33m[2m✓[22m[39m outputs SERVICE_ROLE_KEY= line [33m 1056[2mms[22m[39m
|
|
188
|
-
[33m[2m✓[22m[39m ANON_KEY is a valid three-part JWT [33m 1107[2mms[22m[39m
|
|
189
|
-
[33m[2m✓[22m[39m SERVICE_ROLE_KEY payload has role: service_role [33m 1014[2mms[22m[39m
|
|
190
|
-
[33m[2m✓[22m[39m JWT has exp in the future [33m 993[2mms[22m[39m
|
|
191
|
-
[33m[2m✓[22m[39m --exp-years changes the expiry window [33m 2075[2mms[22m[39m
|
|
192
|
-
[33m[2m✓[22m[39m reads JWT_SECRET from environment variable [33m 959[2mms[22m[39m
|
|
193
|
-
[33m[2m✓[22m[39m reads JWT_SECRET from .env file [33m 925[2mms[22m[39m
|
|
194
|
-
[33m[2m✓[22m[39m exits non-zero when no secret is available [33m 1047[2mms[22m[39m
|
|
195
|
-
[33m[2m✓[22m[39m keys --help shows --secret and --exp-years options [33m 837[2mms[22m[39m
|
|
196
|
-
[32m✓[39m tests/studio-admin-roles.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
223
|
+
[32m✓[39m tests/seed-discover.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
224
|
+
[32m✓[39m tests/studio-admin-roles.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
225
|
+
[32m✓[39m tests/app-command.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 2073[2mms[22m[39m
|
|
226
|
+
[33m[2m✓[22m[39m sets app.mode=static and static_dir in supatype.config.ts [33m 1056[2mms[22m[39m
|
|
227
|
+
[33m[2m✓[22m[39m creates the static directory when missing [33m 1016[2mms[22m[39m
|
|
197
228
|
[32m✓[39m tests/release-pins.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
198
|
-
[32m✓[39m tests/
|
|
199
|
-
[32m✓[39m tests/pg-spawn-env.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
229
|
+
[32m✓[39m tests/pg-spawn-env.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
200
230
|
[32m✓[39m tests/postgres-archive-tag.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
201
|
-
[32m✓[39m tests/
|
|
202
|
-
|
|
203
|
-
[33m[2m✓[22m[39m --help lists all top-level commands [33m 1038[2mms[22m[39m
|
|
231
|
+
[32m✓[39m tests/cli-help.test.ts [2m([22m[2m16 tests[22m[2m)[22m[33m 16035[2mms[22m[39m
|
|
232
|
+
[33m[2m✓[22m[39m --help lists all top-level commands [33m 1018[2mms[22m[39m
|
|
204
233
|
[33m[2m✓[22m[39m --version prints a semver string [33m 969[2mms[22m[39m
|
|
205
|
-
[33m[2m✓[22m[39m self-update --help describes the command [33m
|
|
206
|
-
[33m[2m✓[22m[39m init --help describes the init command [33m
|
|
207
|
-
[33m[2m✓[22m[39m push --help describes the push command and --yes flag [33m
|
|
208
|
-
[33m[2m✓[22m[39m diff --help describes the diff command [33m
|
|
209
|
-
[33m[2m✓[22m[39m pull --help describes
|
|
210
|
-
[33m[2m✓[22m[39m
|
|
211
|
-
[33m[2m✓[22m[39m
|
|
212
|
-
[33m[2m✓[22m[39m
|
|
213
|
-
[33m[2m✓[22m[39m
|
|
214
|
-
[33m[2m✓[22m[39m
|
|
215
|
-
[33m[2m✓[22m[39m
|
|
216
|
-
|
|
217
|
-
[2m
|
|
218
|
-
[
|
|
219
|
-
[2m
|
|
220
|
-
|
|
234
|
+
[33m[2m✓[22m[39m self-update --help describes the command [33m 981[2mms[22m[39m
|
|
235
|
+
[33m[2m✓[22m[39m init --help describes the init command [33m 1105[2mms[22m[39m
|
|
236
|
+
[33m[2m✓[22m[39m push --help describes the push command and --yes flag [33m 977[2mms[22m[39m
|
|
237
|
+
[33m[2m✓[22m[39m diff --help describes the diff command [33m 1007[2mms[22m[39m
|
|
238
|
+
[33m[2m✓[22m[39m pull --help describes scaffold pull command [33m 978[2mms[22m[39m
|
|
239
|
+
[33m[2m✓[22m[39m doctor --help describes drift report command [33m 1020[2mms[22m[39m
|
|
240
|
+
[33m[2m✓[22m[39m introspect --help describes database introspection command [33m 915[2mms[22m[39m
|
|
241
|
+
[33m[2m✓[22m[39m adopt --help describes adoption ceremony command [33m 966[2mms[22m[39m
|
|
242
|
+
[33m[2m✓[22m[39m reset --help shows --yes flag [33m 974[2mms[22m[39m
|
|
243
|
+
[33m[2m✓[22m[39m app --help describes the app command with add/remove subcommands [33m 1080[2mms[22m[39m
|
|
244
|
+
[33m[2m✓[22m[39m app add --help shows --static and --port options [33m 998[2mms[22m[39m
|
|
245
|
+
[33m[2m✓[22m[39m self-host --help shows compose only (legacy commands hidden) [33m 1033[2mms[22m[39m
|
|
246
|
+
[33m[2m✓[22m[39m self-host compose --help shows compose subcommands [33m 1038[2mms[22m[39m
|
|
247
|
+
[33m[2m✓[22m[39m unknown command exits non-zero [33m 970[2mms[22m[39m
|
|
248
|
+
[32m✓[39m tests/migrate-from-v1.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 11[2mms[22m[39m
|
|
249
|
+
|
|
250
|
+
[2m Test Files [22m [1m[32m28 passed[39m[22m[90m (28)[39m
|
|
251
|
+
[2m Tests [22m [1m[32m264 passed[39m[22m[90m (264)[39m
|
|
252
|
+
[2m Start at [22m 19:48:26
|
|
253
|
+
[2m Duration [22m 19.22s[2m (transform 2.92s, setup 0ms, import 10.12s, tests 41.70s, environment 5ms)[22m
|
|
221
254
|
|
package/dist/app/framework.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Inspects package.json to determine the framework, then resolves
|
|
4
4
|
* build command, output directory, and SPA mode defaults.
|
|
5
5
|
*/
|
|
6
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
7
7
|
import { join, resolve } from "node:path";
|
|
8
8
|
const FRAMEWORK_DEFAULTS = {
|
|
9
9
|
nextjs: { buildCommand: "next build", outputDirectory: "out", spa: false },
|
|
@@ -174,7 +174,6 @@ export function validateBuildOutput(outputDir, maxSizeMb) {
|
|
|
174
174
|
return null;
|
|
175
175
|
}
|
|
176
176
|
function findHtmlFile(dir) {
|
|
177
|
-
const { readdirSync, statSync } = require("node:fs");
|
|
178
177
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
179
178
|
if (entry.isFile() && entry.name.endsWith(".html"))
|
|
180
179
|
return true;
|
|
@@ -186,7 +185,6 @@ function findHtmlFile(dir) {
|
|
|
186
185
|
return false;
|
|
187
186
|
}
|
|
188
187
|
function getDirSizeMb(dir) {
|
|
189
|
-
const { readdirSync, statSync } = require("node:fs");
|
|
190
188
|
let size = 0;
|
|
191
189
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
192
190
|
const path = join(dir, entry.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/app/framework.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/app/framework.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,20 @@ import { ProcessManager } from "../process-manager.js";
|
|
|
5
5
|
import { type SupatypeProjectConfig } from "../project-config.js";
|
|
6
6
|
/** package.json script name to run (only when app.mode is proxy). */
|
|
7
7
|
export declare function resolveProxyDevScript(config: SupatypeProjectConfig): string | null;
|
|
8
|
+
/** Port from app.upstream (e.g. http://localhost:5285 → 5285). */
|
|
9
|
+
export declare function portFromUpstream(config: SupatypeProjectConfig): number | null;
|
|
10
|
+
/** Free the upstream port and any stale app PID before spawning Vite. */
|
|
11
|
+
export declare function freeProxyDevPort(pidDir: string, port: number): void;
|
|
12
|
+
/**
|
|
13
|
+
* When a package.json script only runs Vite, spawn node + vite.js directly.
|
|
14
|
+
* Avoids Windows shell shims (pnpm → bash → vite) that orphan the real server
|
|
15
|
+
* and break PID-based cleanup / auto-restart.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveViteDirectSpawn(appDir: string, script: string, scripts: Record<string, string> | undefined): {
|
|
18
|
+
bin: string;
|
|
19
|
+
args: string[];
|
|
20
|
+
shell: boolean;
|
|
21
|
+
} | null;
|
|
8
22
|
/**
|
|
9
23
|
* Start the configured package.json script for proxy dev.
|
|
10
24
|
* Returns null when not in proxy mode or when the script is missing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-dev-app.d.ts","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"proxy-dev-app.d.ts","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,cAAc,EAAW,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAIxF,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAIlF;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAW7E;AAmDD,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAInE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAexD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,IAAI,CAiDvB"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spawn the frontend dev server during `supatype dev` when app.mode is proxy.
|
|
3
3
|
*/
|
|
4
|
+
import { execSync } from "node:child_process";
|
|
4
5
|
import { existsSync, readFileSync } from "node:fs";
|
|
5
6
|
import { join } from "node:path";
|
|
6
7
|
import { detectPackageManager } from "./framework.js";
|
|
7
8
|
import { appendDevTaskLog } from "../dev-session.js";
|
|
8
|
-
import { ProcessManager } from "../process-manager.js";
|
|
9
|
+
import { ProcessManager, readPid } from "../process-manager.js";
|
|
9
10
|
import { projectRootFromConfig } from "../project-config.js";
|
|
10
11
|
const DEFAULT_PROXY_DEV_SCRIPT = "start";
|
|
11
12
|
/** package.json script name to run (only when app.mode is proxy). */
|
|
@@ -15,6 +16,102 @@ export function resolveProxyDevScript(config) {
|
|
|
15
16
|
const script = config.app.start?.trim();
|
|
16
17
|
return script && script.length > 0 ? script : DEFAULT_PROXY_DEV_SCRIPT;
|
|
17
18
|
}
|
|
19
|
+
/** Port from app.upstream (e.g. http://localhost:5285 → 5285). */
|
|
20
|
+
export function portFromUpstream(config) {
|
|
21
|
+
const raw = config.app?.upstream?.trim();
|
|
22
|
+
if (!raw)
|
|
23
|
+
return null;
|
|
24
|
+
try {
|
|
25
|
+
const port = new URL(raw).port;
|
|
26
|
+
if (!port)
|
|
27
|
+
return null;
|
|
28
|
+
const n = Number(port);
|
|
29
|
+
return Number.isFinite(n) && n > 0 ? n : null;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function killPidTree(pid) {
|
|
36
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
37
|
+
return;
|
|
38
|
+
try {
|
|
39
|
+
if (process.platform === "win32") {
|
|
40
|
+
execSync(`taskkill /pid ${pid} /T /F`, { stdio: "ignore" });
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
execSync(`kill -9 ${pid}`, { stdio: "ignore" });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
/* already gone */
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function killPortListeners(port) {
|
|
51
|
+
if (process.platform === "win32") {
|
|
52
|
+
try {
|
|
53
|
+
const out = execSync(`netstat -ano | findstr :${port}`, { encoding: "utf8" });
|
|
54
|
+
const pids = new Set();
|
|
55
|
+
for (const line of out.split("\n")) {
|
|
56
|
+
const match = line.match(/LISTENING\s+(\d+)/);
|
|
57
|
+
if (match?.[1])
|
|
58
|
+
pids.add(match[1]);
|
|
59
|
+
}
|
|
60
|
+
for (const pid of pids) {
|
|
61
|
+
try {
|
|
62
|
+
execSync(`taskkill /pid ${pid} /T /F`, { stdio: "ignore" });
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
/* already gone */
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
/* nothing listening */
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const out = execSync(`lsof -ti :${port}`, { encoding: "utf8" });
|
|
76
|
+
for (const pid of out.trim().split(/\s+/)) {
|
|
77
|
+
try {
|
|
78
|
+
execSync(`kill -9 ${pid}`, { stdio: "ignore" });
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
/* already gone */
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
/* nothing listening */
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Free the upstream port and any stale app PID before spawning Vite. */
|
|
90
|
+
export function freeProxyDevPort(pidDir, port) {
|
|
91
|
+
const stalePid = readPid(pidDir, "app");
|
|
92
|
+
if (stalePid)
|
|
93
|
+
killPidTree(stalePid);
|
|
94
|
+
killPortListeners(port);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* When a package.json script only runs Vite, spawn node + vite.js directly.
|
|
98
|
+
* Avoids Windows shell shims (pnpm → bash → vite) that orphan the real server
|
|
99
|
+
* and break PID-based cleanup / auto-restart.
|
|
100
|
+
*/
|
|
101
|
+
export function resolveViteDirectSpawn(appDir, script, scripts) {
|
|
102
|
+
const body = scripts?.[script]?.trim() ?? "";
|
|
103
|
+
if (!body)
|
|
104
|
+
return null;
|
|
105
|
+
const runsVite = body === "vite" ||
|
|
106
|
+
/^vite\s/.test(body) ||
|
|
107
|
+
body.includes("vite/bin/vite");
|
|
108
|
+
if (!runsVite)
|
|
109
|
+
return null;
|
|
110
|
+
const viteJs = join(appDir, "node_modules", "vite", "bin", "vite.js");
|
|
111
|
+
if (!existsSync(viteJs))
|
|
112
|
+
return null;
|
|
113
|
+
return { bin: process.execPath, args: [viteJs], shell: false };
|
|
114
|
+
}
|
|
18
115
|
/**
|
|
19
116
|
* Start the configured package.json script for proxy dev.
|
|
20
117
|
* Returns null when not in proxy mode or when the script is missing.
|
|
@@ -35,18 +132,24 @@ export function startProxyDevApp(cwd, config, pidDir) {
|
|
|
35
132
|
` Add "scripts.${script}" or set app.start in supatype.config.ts`);
|
|
36
133
|
return null;
|
|
37
134
|
}
|
|
135
|
+
const upstreamPort = portFromUpstream(config);
|
|
136
|
+
const directVite = resolveViteDirectSpawn(appDir, script, pkg.scripts);
|
|
38
137
|
const pm = detectPackageManager(appDir);
|
|
39
|
-
const bin = pm;
|
|
40
|
-
const args = pm === "yarn" ? [script] : ["run", script];
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
138
|
+
const bin = directVite?.bin ?? pm;
|
|
139
|
+
const args = directVite?.args ?? (pm === "yarn" ? [script] : ["run", script]);
|
|
140
|
+
const useShell = directVite ? false : process.platform === "win32";
|
|
141
|
+
appendDevTaskLog("app", "app", directVite
|
|
142
|
+
? `Proxy mode: running node vite.js (${appDir})`
|
|
143
|
+
: `Proxy mode: running ${bin} ${args.join(" ")} (${appDir})`);
|
|
144
|
+
if (upstreamPort)
|
|
145
|
+
freeProxyDevPort(pidDir, upstreamPort);
|
|
44
146
|
const manager = new ProcessManager(bin, args, {
|
|
45
147
|
label: "app",
|
|
46
148
|
pidDir,
|
|
47
149
|
cwd: appDir,
|
|
48
150
|
colour: "\x1b[33m",
|
|
49
151
|
shell: useShell,
|
|
152
|
+
...(upstreamPort ? { beforeRestart: () => freeProxyDevPort(pidDir, upstreamPort) } : {}),
|
|
50
153
|
});
|
|
51
154
|
manager.start();
|
|
52
155
|
return manager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-dev-app.js","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"proxy-dev-app.js","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"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"}
|
package/dist/binary-cache.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export declare function hasMeaningfulOverrides(config: SupatypeProjectConfig): b
|
|
|
27
27
|
export declare function describeActiveOverrides(config: SupatypeProjectConfig): string[];
|
|
28
28
|
/**
|
|
29
29
|
* True when this working tree is associated with a remote Supatype Cloud project:
|
|
30
|
-
* `project.ref
|
|
30
|
+
* `project.ref` or `.supatype/link.json` (cloud kind).
|
|
31
31
|
*/
|
|
32
32
|
export declare function isLinkedToCloudProject(cwd: string, config: SupatypeProjectConfig): boolean;
|
|
33
33
|
export type { Component, ComponentVersions } from "./components.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-cache.d.ts","sourceRoot":"","sources":["../src/binary-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"binary-cache.d.ts","sourceRoot":"","sources":["../src/binary-cache.ts"],"names":[],"mappings":"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"}
|
package/dist/binary-cache.js
CHANGED
|
@@ -17,6 +17,7 @@ import { closeSync, copyFileSync, createWriteStream, existsSync, mkdirSync, open
|
|
|
17
17
|
import { chmod } from "node:fs/promises";
|
|
18
18
|
import { homedir } from "node:os";
|
|
19
19
|
import { basename, join, resolve, isAbsolute } from "node:path";
|
|
20
|
+
import { loadProjectLink, migrateLegacyLinkFiles } from "./link.js";
|
|
20
21
|
import { releasePublicKey } from "./release-public-key.js";
|
|
21
22
|
/**
|
|
22
23
|
* Set `versions.{engine|server|postgres|deno}: VERSION_PIN_LOCAL` to mean “use `overrides.*` only”
|
|
@@ -64,12 +65,16 @@ export function describeActiveOverrides(config) {
|
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
67
|
* True when this working tree is associated with a remote Supatype Cloud project:
|
|
67
|
-
* `project.ref
|
|
68
|
+
* `project.ref` or `.supatype/link.json` (cloud kind).
|
|
68
69
|
*/
|
|
69
70
|
export function isLinkedToCloudProject(cwd, config) {
|
|
70
71
|
const ref = config.project.ref;
|
|
71
72
|
if (typeof ref === "string" && ref.trim() !== "")
|
|
72
73
|
return true;
|
|
74
|
+
migrateLegacyLinkFiles(cwd);
|
|
75
|
+
const link = loadProjectLink(cwd);
|
|
76
|
+
if (link?.kind === "cloud" && link.projectRef.trim() !== "")
|
|
77
|
+
return true;
|
|
73
78
|
const linkedPath = join(cwd, ".supatype", "linked.json");
|
|
74
79
|
if (existsSync(linkedPath)) {
|
|
75
80
|
try {
|