@ankhorage/studio 2.6.0 → 2.6.1
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/README.md +2 -2
- package/apm/update.json +4 -18
- package/dist/apm.d.ts +17 -2
- package/dist/apm.d.ts.map +1 -1
- package/dist/apm.js +17 -2
- package/dist/apm.js.map +1 -1
- package/dist/features/project-updates/adapters/inbound/studioUpdateExtension.d.ts.map +1 -1
- package/dist/features/project-updates/adapters/inbound/studioUpdateExtension.js +25 -54
- package/dist/features/project-updates/adapters/inbound/studioUpdateExtension.js.map +1 -1
- package/dist/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.d.ts +1 -1
- package/dist/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.d.ts.map +1 -1
- package/dist/features/project-updates/domain/applyGeneratedPackagePolicy.d.ts +1 -1
- package/dist/features/project-updates/domain/applyGeneratedPackagePolicy.d.ts.map +1 -1
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/studio
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Studio authoring package for Ankhorage apps
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
package/apm/update.json
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"protocolVersion": 1,
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"owner": {
|
|
5
|
-
"name": "@ankhorage/studio",
|
|
6
|
-
"version": "2.6.0"
|
|
7
|
-
},
|
|
4
|
+
"owner": { "name": "@ankhorage/studio", "version": "2.6.1" },
|
|
8
5
|
"history": {
|
|
9
|
-
"supported": [
|
|
10
|
-
{
|
|
11
|
-
"sourceRange": ">=2.5.7 <3.0.0",
|
|
12
|
-
"mode": "no-migration"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
6
|
+
"supported": [{ "sourceRange": ">=2.5.7 <3.0.0", "mode": "no-migration" }],
|
|
15
7
|
"unsupported": [],
|
|
16
8
|
"downgrade": "unsupported"
|
|
17
9
|
},
|
|
@@ -21,11 +13,7 @@
|
|
|
21
13
|
{
|
|
22
14
|
"id": "generated-package-policy",
|
|
23
15
|
"claims": [
|
|
24
|
-
{
|
|
25
|
-
"kind": "json-pointer",
|
|
26
|
-
"path": "package.json",
|
|
27
|
-
"pointer": "/packageManager"
|
|
28
|
-
},
|
|
16
|
+
{ "kind": "json-pointer", "path": "package.json", "pointer": "/packageManager" },
|
|
29
17
|
{
|
|
30
18
|
"kind": "json-pointer",
|
|
31
19
|
"path": "package.json",
|
|
@@ -132,7 +120,5 @@
|
|
|
132
120
|
}
|
|
133
121
|
],
|
|
134
122
|
"effects": [],
|
|
135
|
-
"extension": {
|
|
136
|
-
"export": "./apm"
|
|
137
|
-
}
|
|
123
|
+
"extension": { "export": "./apm" }
|
|
138
124
|
}
|
package/dist/apm.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
-
/*** Public APM owner extension
|
|
2
|
-
|
|
1
|
+
/*** Public headless APM owner extension for the exact installed Studio artifact.
|
|
2
|
+
*
|
|
3
|
+
* Inspect and plan are read-only. Generated package policy uses the same pure transformation as
|
|
4
|
+
* initial authoring; only reviewed Studio-owned JSON fields are materialized, in order. Missing
|
|
5
|
+
* package state is unknown and cannot produce a successful empty plan. Node consumers do not
|
|
6
|
+
* import Studio UI, React, Expo or native peer code through this entrypoint.
|
|
7
|
+
*
|
|
8
|
+
* Supported stored-state history is explicitly declared in apm/update.json. Older unreviewed
|
|
9
|
+
* versions are unsupported, not automatically treated as migration-free. APM updates project
|
|
10
|
+
* sources; deployment, OTA eligibility, native builds and stores are separate follow-up work.
|
|
11
|
+
*
|
|
12
|
+
* Producers run test:apm and the Devtools packed-release gate after Changesets versioning; the
|
|
13
|
+
* exact validated archive is published. The cold packed-host acceptance also imports and verifies
|
|
14
|
+
* this owner under native Node with UI/native imports prohibited.
|
|
15
|
+
* @readme
|
|
16
|
+
*/
|
|
17
|
+
export { studioUpdateExtension as default } from './features/project-updates/adapters/inbound/studioUpdateExtension.js';
|
|
3
18
|
//# sourceMappingURL=apm.d.ts.map
|
package/dist/apm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apm.d.ts","sourceRoot":"","sources":["../src/apm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"apm.d.ts","sourceRoot":"","sources":["../src/apm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,sEAAsE,CAAC"}
|
package/dist/apm.js
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
-
/*** Public APM owner extension
|
|
2
|
-
|
|
1
|
+
/*** Public headless APM owner extension for the exact installed Studio artifact.
|
|
2
|
+
*
|
|
3
|
+
* Inspect and plan are read-only. Generated package policy uses the same pure transformation as
|
|
4
|
+
* initial authoring; only reviewed Studio-owned JSON fields are materialized, in order. Missing
|
|
5
|
+
* package state is unknown and cannot produce a successful empty plan. Node consumers do not
|
|
6
|
+
* import Studio UI, React, Expo or native peer code through this entrypoint.
|
|
7
|
+
*
|
|
8
|
+
* Supported stored-state history is explicitly declared in apm/update.json. Older unreviewed
|
|
9
|
+
* versions are unsupported, not automatically treated as migration-free. APM updates project
|
|
10
|
+
* sources; deployment, OTA eligibility, native builds and stores are separate follow-up work.
|
|
11
|
+
*
|
|
12
|
+
* Producers run test:apm and the Devtools packed-release gate after Changesets versioning; the
|
|
13
|
+
* exact validated archive is published. The cold packed-host acceptance also imports and verifies
|
|
14
|
+
* this owner under native Node with UI/native imports prohibited.
|
|
15
|
+
* @readme
|
|
16
|
+
*/
|
|
17
|
+
export { studioUpdateExtension as default } from './features/project-updates/adapters/inbound/studioUpdateExtension.js';
|
|
3
18
|
//# sourceMappingURL=apm.js.map
|
package/dist/apm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apm.js","sourceRoot":"","sources":["../src/apm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"apm.js","sourceRoot":"","sources":["../src/apm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,sEAAsE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studioUpdateExtension.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/studioUpdateExtension.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAMV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"studioUpdateExtension.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/studioUpdateExtension.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAMV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAU9B,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,EAAE,kBAKnC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
|
-
import { isRecord } from '@ankhorage/utility/object';
|
|
4
|
-
import {
|
|
3
|
+
import { isRecord, readOwnProperty } from '@ankhorage/utility/object';
|
|
4
|
+
import { applyGeneratedPackagePolicy } from '../../domain/applyGeneratedPackagePolicy.js';
|
|
5
|
+
import { getGeneratedPackagePolicy } from '../outbound/getGeneratedPackagePolicy.js';
|
|
5
6
|
/*** Expose Studio's trusted package-policy projection through the public APM extension contract. */
|
|
6
7
|
export const studioUpdateExtension = {
|
|
7
8
|
protocolVersion: 1,
|
|
@@ -34,10 +35,16 @@ function createGeneratedPackagePolicyProjection() {
|
|
|
34
35
|
},
|
|
35
36
|
planAsync: async (input) => {
|
|
36
37
|
const state = await inspectProjectionStateAsync(input);
|
|
38
|
+
if (state.manifest === undefined) {
|
|
39
|
+
throw new Error('Cannot plan Studio package policy from missing or malformed package.json.');
|
|
40
|
+
}
|
|
37
41
|
return toProjectionPlan(state);
|
|
38
42
|
},
|
|
39
43
|
materializeAsync: async (input) => {
|
|
40
|
-
|
|
44
|
+
// Every mutation targets the same document; preserve reviewed ordering at the I/O boundary.
|
|
45
|
+
for (const { id } of input.plan.mutations) {
|
|
46
|
+
await input.project.applyReviewedMutationAsync(id);
|
|
47
|
+
}
|
|
41
48
|
},
|
|
42
49
|
verifyAsync: async (input) => {
|
|
43
50
|
const state = await inspectProjectionStateAsync(input);
|
|
@@ -118,60 +125,24 @@ function parseGeneratedPackageManifest(snapshot) {
|
|
|
118
125
|
function isStringRecord(value) {
|
|
119
126
|
return isRecord(value) && Object.values(value).every((entry) => typeof entry === 'string');
|
|
120
127
|
}
|
|
121
|
-
/***
|
|
128
|
+
/*** Derive reviewed mutations from the same pure package policy used by initial generation. */
|
|
122
129
|
function packagePolicyMutations(manifest, policy, beforeDigest) {
|
|
123
|
-
const
|
|
130
|
+
const target = applyGeneratedPackagePolicy(manifest, policy);
|
|
131
|
+
const packageManagerMutation = manifest.packageManager === target.packageManager
|
|
124
132
|
? []
|
|
125
|
-
: [stringMutation('/packageManager',
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
:
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
});
|
|
134
|
-
return [...packageManagerMutation, ...managed];
|
|
135
|
-
}
|
|
136
|
-
/*** Enumerate package fields controlled by this Studio artifact while preserving optional capabilities. */
|
|
137
|
-
function managedPolicyEntries(manifest, policy) {
|
|
138
|
-
const dependencies = [
|
|
139
|
-
dependency('@ankhorage/contracts', policy.dependencies.contracts),
|
|
140
|
-
dependency('@ankhorage/data-sources', policy.dependencies.dataSources),
|
|
141
|
-
dependency('@ankhorage/expo-runtime', policy.dependencies.expoRuntime),
|
|
142
|
-
dependency('@ankhorage/navigator', policy.dependencies.navigator),
|
|
143
|
-
dependency('@ankhorage/runtime', policy.dependencies.runtime),
|
|
144
|
-
...optionalDependency(manifest, '@ankhorage/studio', policy.dependencies.studio),
|
|
145
|
-
...optionalDependency(manifest, '@ankhorage/utility', policy.dependencies.utility),
|
|
146
|
-
...optionalDependency(manifest, '@ankhorage/supabase-auth', policy.dependencies.supabaseAuth),
|
|
147
|
-
...optionalDependency(manifest, '@ankhorage/supabase-storage', policy.dependencies.supabaseStorage),
|
|
148
|
-
dependency('@ankhorage/zora', policy.dependencies.zora),
|
|
149
|
-
dependency('@react-native-picker/picker', policy.peerDependencies.nativePicker),
|
|
150
|
-
dependency('@react-native-vector-icons/fontawesome', policy.peerDependencies.fontawesome),
|
|
151
|
-
dependency('@react-native-vector-icons/fontawesome5', policy.peerDependencies.fontawesome5),
|
|
152
|
-
dependency('@react-native-vector-icons/fontawesome6', policy.peerDependencies.fontawesome6),
|
|
153
|
-
dependency('@react-native-vector-icons/ionicons', policy.peerDependencies.ionicons),
|
|
154
|
-
];
|
|
155
|
-
const devDependencies = [
|
|
156
|
-
devDependency('@ankhorage/ankh', policy.devDependencies.ankh),
|
|
157
|
-
devDependency('@ankhorage/devtools', policy.devDependencies.devtools),
|
|
158
|
-
devDependency('@types/bun', policy.devDependencies.typesBun),
|
|
159
|
-
devDependency('@types/culori', policy.devDependencies.typesCulori),
|
|
160
|
-
devDependency('@types/react', policy.devDependencies.typesReact),
|
|
133
|
+
: [stringMutation('/packageManager', target.packageManager, beforeDigest)];
|
|
134
|
+
const sections = [
|
|
135
|
+
{ section: 'dependencies', current: manifest.dependencies, desired: target.dependencies },
|
|
136
|
+
{
|
|
137
|
+
section: 'devDependencies',
|
|
138
|
+
current: manifest.devDependencies,
|
|
139
|
+
desired: target.devDependencies,
|
|
140
|
+
},
|
|
161
141
|
];
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
return { section: 'dependencies', key, target };
|
|
167
|
-
}
|
|
168
|
-
/*** Build one generated development dependency policy entry. */
|
|
169
|
-
function devDependency(key, target) {
|
|
170
|
-
return { section: 'devDependencies', key, target };
|
|
171
|
-
}
|
|
172
|
-
/*** Preserve capability-driven optional dependencies unless the app already owns that capability. */
|
|
173
|
-
function optionalDependency(manifest, key, target) {
|
|
174
|
-
return key in manifest.dependencies ? [dependency(key, target)] : [];
|
|
142
|
+
const dependencyMutations = sections.flatMap(({ section, current, desired }) => Object.entries(desired).flatMap(([key, value]) => readOwnProperty(current, key) === value
|
|
143
|
+
? []
|
|
144
|
+
: [stringMutation(`/${section}/${jsonPointerSegment(key)}`, value, beforeDigest)]));
|
|
145
|
+
return [...packageManagerMutation, ...dependencyMutations];
|
|
175
146
|
}
|
|
176
147
|
/*** Build one reviewed string mutation with the matching narrow JSON-pointer ownership claim. */
|
|
177
148
|
function stringMutation(pointer, value, expectedBeforeDigest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studioUpdateExtension.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/studioUpdateExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAUvC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"studioUpdateExtension.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/studioUpdateExtension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GeneratedPackagePolicy } from '../../../../types/project-updates';
|
|
1
|
+
import type { GeneratedPackagePolicy } from '../../../../types/project-updates.js';
|
|
2
2
|
/*** Return Studio-owned generated-app dependency policy from this exact package artifact. */
|
|
3
3
|
export declare function getGeneratedPackagePolicy(): GeneratedPackagePolicy;
|
|
4
4
|
//# sourceMappingURL=getGeneratedPackagePolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGeneratedPackagePolicy.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"getGeneratedPackagePolicy.d.ts","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAEnF,6FAA6F;AAC7F,wBAAgB,yBAAyB,IAAI,sBAAsB,CAElE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GeneratedPackageManifest, GeneratedPackagePolicy } from '../../../types/project-updates';
|
|
1
|
+
import type { GeneratedPackageManifest, GeneratedPackagePolicy } from '../../../types/project-updates.js';
|
|
2
2
|
/*** Apply one explicit Studio package policy while preserving all user-owned package manifest entries. */
|
|
3
3
|
export declare function applyGeneratedPackagePolicy<T extends GeneratedPackageManifest>(packageJson: T, policy: GeneratedPackagePolicy): T;
|
|
4
4
|
//# sourceMappingURL=applyGeneratedPackagePolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyGeneratedPackagePolicy.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/domain/applyGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"applyGeneratedPackagePolicy.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/domain/applyGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,0GAA0G;AAC1G,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,wBAAwB,EAC5E,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,sBAAsB,GAC7B,CAAC,CAyCH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/studio",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.1",
|
|
4
4
|
"description": "Studio authoring package for Ankhorage apps",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ankhorage/studio#readme",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
},
|
|
168
168
|
"scripts": {
|
|
169
169
|
"build": "tsc -p tsconfig.build.json",
|
|
170
|
-
"typecheck": "
|
|
170
|
+
"typecheck": "bun run check-types",
|
|
171
171
|
"dev": "bun run --no-orphans dev:host & bun run --no-orphans dev:studio",
|
|
172
172
|
"dev:studio": "bun install --cwd apps/studio --frozen-lockfile && bun run --cwd apps/studio web",
|
|
173
173
|
"typecheck:studio": "bun install --cwd apps/studio --frozen-lockfile && bun run --cwd apps/studio typecheck",
|
|
@@ -196,7 +196,10 @@
|
|
|
196
196
|
"version-packages": "ankhorage-changeset version",
|
|
197
197
|
"dev:host": "bun src/host/http/standalone.ts",
|
|
198
198
|
"test:host-smoke": "bun test src/host/hostLifecycle.smoke.test.ts",
|
|
199
|
-
"knip:check": "ankhorage-knip"
|
|
199
|
+
"knip:check": "ankhorage-knip",
|
|
200
|
+
"test:apm": "bun test src/features/project-updates/adapters/inbound/studioUpdateExtension.test.ts",
|
|
201
|
+
"check-types": "tsc --noEmit -p tsconfig.json",
|
|
202
|
+
"test:apm:consumer": "node scripts/apm-owner-consumer.ts"
|
|
200
203
|
},
|
|
201
204
|
"keywords": [
|
|
202
205
|
"ankhorage",
|
|
@@ -260,7 +263,7 @@
|
|
|
260
263
|
},
|
|
261
264
|
"devDependencies": {
|
|
262
265
|
"@ankhorage/ankh": "^0.8.11",
|
|
263
|
-
"@ankhorage/devtools": "^1.
|
|
266
|
+
"@ankhorage/devtools": "^1.15.0",
|
|
264
267
|
"@ankhorage/paradox": "^0.1.24",
|
|
265
268
|
"@types/bun": "^1.4.1",
|
|
266
269
|
"@types/node": "^24.13.3",
|