@ankhorage/studio 2.5.7 → 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 +124 -0
- package/dist/apm.d.ts +18 -0
- package/dist/apm.d.ts.map +1 -0
- package/dist/apm.js +18 -0
- package/dist/apm.js.map +1 -0
- package/dist/features/project-updates/adapters/inbound/studioUpdateExtension.d.ts +4 -0
- package/dist/features/project-updates/adapters/inbound/studioUpdateExtension.d.ts.map +1 -0
- package/dist/features/project-updates/adapters/inbound/studioUpdateExtension.js +176 -0
- package/dist/features/project-updates/adapters/inbound/studioUpdateExtension.js.map +1 -0
- package/dist/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.d.ts +4 -0
- package/dist/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.d.ts.map +1 -0
- package/dist/{host/orchestrator/generatedPackagePolicy.js → features/project-updates/adapters/outbound/getGeneratedPackagePolicy.js} +8 -6
- package/dist/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.js.map +1 -0
- package/dist/features/project-updates/composition/applyCurrentGeneratedPackagePolicy.d.ts +4 -0
- package/dist/features/project-updates/composition/applyCurrentGeneratedPackagePolicy.d.ts.map +1 -0
- package/dist/features/project-updates/composition/applyCurrentGeneratedPackagePolicy.js +7 -0
- package/dist/features/project-updates/composition/applyCurrentGeneratedPackagePolicy.js.map +1 -0
- package/dist/features/project-updates/domain/applyGeneratedPackagePolicy.d.ts +4 -0
- package/dist/features/project-updates/domain/applyGeneratedPackagePolicy.d.ts.map +1 -0
- package/dist/{host/orchestrator → features/project-updates/domain}/applyGeneratedPackagePolicy.js +2 -4
- package/dist/features/project-updates/domain/applyGeneratedPackagePolicy.js.map +1 -0
- package/dist/host/orchestrator/syncGeneratedPackagePolicyAsync.js +2 -2
- package/dist/host/orchestrator/syncGeneratedPackagePolicyAsync.js.map +1 -1
- package/dist/host/orchestrator/templates.js +2 -2
- package/dist/host/orchestrator/templates.js.map +1 -1
- package/dist/types/project-updates.d.ts +37 -0
- package/dist/types/project-updates.d.ts.map +1 -1
- package/package.json +17 -5
- package/dist/host/orchestrator/applyGeneratedPackagePolicy.d.ts +0 -9
- package/dist/host/orchestrator/applyGeneratedPackagePolicy.d.ts.map +0 -1
- package/dist/host/orchestrator/applyGeneratedPackagePolicy.js.map +0 -1
- package/dist/host/orchestrator/generatedPackagePolicy.d.ts +0 -33
- package/dist/host/orchestrator/generatedPackagePolicy.d.ts.map +0 -1
- package/dist/host/orchestrator/generatedPackagePolicy.js.map +0 -1
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
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocolVersion": 1,
|
|
3
|
+
"schemaVersion": 1,
|
|
4
|
+
"owner": { "name": "@ankhorage/studio", "version": "2.6.1" },
|
|
5
|
+
"history": {
|
|
6
|
+
"supported": [{ "sourceRange": ">=2.5.7 <3.0.0", "mode": "no-migration" }],
|
|
7
|
+
"unsupported": [],
|
|
8
|
+
"downgrade": "unsupported"
|
|
9
|
+
},
|
|
10
|
+
"compatibility": [],
|
|
11
|
+
"migrations": [],
|
|
12
|
+
"projections": [
|
|
13
|
+
{
|
|
14
|
+
"id": "generated-package-policy",
|
|
15
|
+
"claims": [
|
|
16
|
+
{ "kind": "json-pointer", "path": "package.json", "pointer": "/packageManager" },
|
|
17
|
+
{
|
|
18
|
+
"kind": "json-pointer",
|
|
19
|
+
"path": "package.json",
|
|
20
|
+
"pointer": "/dependencies/@ankhorage~1contracts"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"kind": "json-pointer",
|
|
24
|
+
"path": "package.json",
|
|
25
|
+
"pointer": "/dependencies/@ankhorage~1data-sources"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"kind": "json-pointer",
|
|
29
|
+
"path": "package.json",
|
|
30
|
+
"pointer": "/dependencies/@ankhorage~1expo-runtime"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"kind": "json-pointer",
|
|
34
|
+
"path": "package.json",
|
|
35
|
+
"pointer": "/dependencies/@ankhorage~1navigator"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"kind": "json-pointer",
|
|
39
|
+
"path": "package.json",
|
|
40
|
+
"pointer": "/dependencies/@ankhorage~1runtime"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"kind": "json-pointer",
|
|
44
|
+
"path": "package.json",
|
|
45
|
+
"pointer": "/dependencies/@ankhorage~1studio"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"kind": "json-pointer",
|
|
49
|
+
"path": "package.json",
|
|
50
|
+
"pointer": "/dependencies/@ankhorage~1utility"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"kind": "json-pointer",
|
|
54
|
+
"path": "package.json",
|
|
55
|
+
"pointer": "/dependencies/@ankhorage~1supabase-auth"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"kind": "json-pointer",
|
|
59
|
+
"path": "package.json",
|
|
60
|
+
"pointer": "/dependencies/@ankhorage~1supabase-storage"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"kind": "json-pointer",
|
|
64
|
+
"path": "package.json",
|
|
65
|
+
"pointer": "/dependencies/@ankhorage~1zora"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"kind": "json-pointer",
|
|
69
|
+
"path": "package.json",
|
|
70
|
+
"pointer": "/dependencies/@react-native-picker~1picker"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"kind": "json-pointer",
|
|
74
|
+
"path": "package.json",
|
|
75
|
+
"pointer": "/dependencies/@react-native-vector-icons~1fontawesome"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"kind": "json-pointer",
|
|
79
|
+
"path": "package.json",
|
|
80
|
+
"pointer": "/dependencies/@react-native-vector-icons~1fontawesome5"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"kind": "json-pointer",
|
|
84
|
+
"path": "package.json",
|
|
85
|
+
"pointer": "/dependencies/@react-native-vector-icons~1fontawesome6"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"kind": "json-pointer",
|
|
89
|
+
"path": "package.json",
|
|
90
|
+
"pointer": "/dependencies/@react-native-vector-icons~1ionicons"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"kind": "json-pointer",
|
|
94
|
+
"path": "package.json",
|
|
95
|
+
"pointer": "/devDependencies/@ankhorage~1ankh"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"kind": "json-pointer",
|
|
99
|
+
"path": "package.json",
|
|
100
|
+
"pointer": "/devDependencies/@ankhorage~1devtools"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"kind": "json-pointer",
|
|
104
|
+
"path": "package.json",
|
|
105
|
+
"pointer": "/devDependencies/@types~1bun"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"kind": "json-pointer",
|
|
109
|
+
"path": "package.json",
|
|
110
|
+
"pointer": "/devDependencies/@types~1culori"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"kind": "json-pointer",
|
|
114
|
+
"path": "package.json",
|
|
115
|
+
"pointer": "/devDependencies/@types~1react"
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"requiresExtension": true,
|
|
119
|
+
"reason": "Studio owns generated application package policy for its managed dependency fields."
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"effects": [],
|
|
123
|
+
"extension": { "export": "./apm" }
|
|
124
|
+
}
|
package/dist/apm.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
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';
|
|
18
|
+
//# sourceMappingURL=apm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
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';
|
|
18
|
+
//# sourceMappingURL=apm.js.map
|
package/dist/apm.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ApmUpdateExtension } from '@ankhorage/apm/types';
|
|
2
|
+
/*** Expose Studio's trusted package-policy projection through the public APM extension contract. */
|
|
3
|
+
export declare const studioUpdateExtension: ApmUpdateExtension;
|
|
4
|
+
//# sourceMappingURL=studioUpdateExtension.d.ts.map
|
|
@@ -0,0 +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;AAU9B,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,EAAE,kBAKnC,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { isRecord, readOwnProperty } from '@ankhorage/utility/object';
|
|
4
|
+
import { applyGeneratedPackagePolicy } from '../../domain/applyGeneratedPackagePolicy.js';
|
|
5
|
+
import { getGeneratedPackagePolicy } from '../outbound/getGeneratedPackagePolicy.js';
|
|
6
|
+
/*** Expose Studio's trusted package-policy projection through the public APM extension contract. */
|
|
7
|
+
export const studioUpdateExtension = {
|
|
8
|
+
protocolVersion: 1,
|
|
9
|
+
descriptorDigest: readDescriptorDigest(),
|
|
10
|
+
migrations: [],
|
|
11
|
+
projections: [createGeneratedPackagePolicyProjection()],
|
|
12
|
+
};
|
|
13
|
+
/*** Build the executable projection handler owned by the exact Studio artifact that exports it. */
|
|
14
|
+
function createGeneratedPackagePolicyProjection() {
|
|
15
|
+
return {
|
|
16
|
+
id: projectionId(),
|
|
17
|
+
inspectAsync: async (input) => {
|
|
18
|
+
const state = await inspectProjectionStateAsync(input);
|
|
19
|
+
return {
|
|
20
|
+
projectionId: projectionId(),
|
|
21
|
+
state: state.manifest === undefined
|
|
22
|
+
? 'unknown'
|
|
23
|
+
: state.mutations.length === 0
|
|
24
|
+
? 'current'
|
|
25
|
+
: 'stale',
|
|
26
|
+
inputFingerprint: state.inputFingerprint,
|
|
27
|
+
generatorFingerprint: state.generatorFingerprint,
|
|
28
|
+
evidence: projectionEvidence(state),
|
|
29
|
+
...(state.manifest === undefined
|
|
30
|
+
? {
|
|
31
|
+
reason: 'Generated package.json is missing or does not match the Studio package-policy shape.',
|
|
32
|
+
}
|
|
33
|
+
: {}),
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
planAsync: async (input) => {
|
|
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
|
+
}
|
|
41
|
+
return toProjectionPlan(state);
|
|
42
|
+
},
|
|
43
|
+
materializeAsync: async (input) => {
|
|
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
|
+
}
|
|
48
|
+
},
|
|
49
|
+
verifyAsync: async (input) => {
|
|
50
|
+
const state = await inspectProjectionStateAsync(input);
|
|
51
|
+
const generatorMatches = state.generatorFingerprint === input.plan.generatorFingerprint;
|
|
52
|
+
const current = state.manifest !== undefined && state.mutations.length === 0;
|
|
53
|
+
return {
|
|
54
|
+
valid: current && generatorMatches,
|
|
55
|
+
evidence: projectionEvidence(state),
|
|
56
|
+
...(!current || !generatorMatches
|
|
57
|
+
? {
|
|
58
|
+
reason: 'Studio package policy projection does not match the reviewed target artifact.',
|
|
59
|
+
}
|
|
60
|
+
: {}),
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/*** Inspect package policy state without mutating the project. */
|
|
66
|
+
async function inspectProjectionStateAsync(input) {
|
|
67
|
+
const snapshot = await input.project.readFileAsync('package.json');
|
|
68
|
+
const policy = getGeneratedPackagePolicy();
|
|
69
|
+
const manifest = parseGeneratedPackageManifest(snapshot);
|
|
70
|
+
const generatorFingerprint = sha256(JSON.stringify({
|
|
71
|
+
owner: input.context.owner,
|
|
72
|
+
targetVersion: input.context.targetVersion,
|
|
73
|
+
integrity: input.context.artifact.integrity,
|
|
74
|
+
descriptorDigest: input.context.artifact.descriptorDigest,
|
|
75
|
+
policy,
|
|
76
|
+
}));
|
|
77
|
+
return {
|
|
78
|
+
snapshot,
|
|
79
|
+
...(manifest === undefined ? {} : { manifest }),
|
|
80
|
+
inputFingerprint: snapshot.digest ?? sha256(snapshot.content ?? 'missing:package.json'),
|
|
81
|
+
generatorFingerprint,
|
|
82
|
+
mutations: manifest === undefined ? [] : packagePolicyMutations(manifest, policy, snapshot.digest),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/*** Convert inspected state into the reviewable APM projection plan. */
|
|
86
|
+
function toProjectionPlan(state) {
|
|
87
|
+
return {
|
|
88
|
+
projectionId: projectionId(),
|
|
89
|
+
mutations: state.mutations,
|
|
90
|
+
inputFingerprint: state.inputFingerprint,
|
|
91
|
+
generatorFingerprint: state.generatorFingerprint,
|
|
92
|
+
evidence: projectionEvidence(state),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/*** Build bounded evidence for package policy inspection and verification. */
|
|
96
|
+
function projectionEvidence(state) {
|
|
97
|
+
return [
|
|
98
|
+
'package.json',
|
|
99
|
+
`managed-fields:${state.mutations.length}`,
|
|
100
|
+
`generator:${state.generatorFingerprint}`,
|
|
101
|
+
];
|
|
102
|
+
}
|
|
103
|
+
/*** Parse the minimum package manifest shape owned by Studio's generated package policy. */
|
|
104
|
+
function parseGeneratedPackageManifest(snapshot) {
|
|
105
|
+
if (!snapshot.exists || snapshot.content === undefined)
|
|
106
|
+
return undefined;
|
|
107
|
+
try {
|
|
108
|
+
const value = JSON.parse(snapshot.content);
|
|
109
|
+
if (!isRecord(value) || typeof value.packageManager !== 'string')
|
|
110
|
+
return undefined;
|
|
111
|
+
if (!isStringRecord(value.dependencies) || !isStringRecord(value.devDependencies)) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
packageManager: value.packageManager,
|
|
116
|
+
dependencies: value.dependencies,
|
|
117
|
+
devDependencies: value.devDependencies,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/*** Return whether every own value of one record is a string. */
|
|
125
|
+
function isStringRecord(value) {
|
|
126
|
+
return isRecord(value) && Object.values(value).every((entry) => typeof entry === 'string');
|
|
127
|
+
}
|
|
128
|
+
/*** Derive reviewed mutations from the same pure package policy used by initial generation. */
|
|
129
|
+
function packagePolicyMutations(manifest, policy, beforeDigest) {
|
|
130
|
+
const target = applyGeneratedPackagePolicy(manifest, policy);
|
|
131
|
+
const packageManagerMutation = manifest.packageManager === target.packageManager
|
|
132
|
+
? []
|
|
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
|
+
},
|
|
141
|
+
];
|
|
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];
|
|
146
|
+
}
|
|
147
|
+
/*** Build one reviewed string mutation with the matching narrow JSON-pointer ownership claim. */
|
|
148
|
+
function stringMutation(pointer, value, expectedBeforeDigest) {
|
|
149
|
+
return {
|
|
150
|
+
id: `${projectionId()}:${pointer}`,
|
|
151
|
+
claim: { kind: 'json-pointer', path: 'package.json', pointer },
|
|
152
|
+
kind: 'set-json-pointer',
|
|
153
|
+
path: 'package.json',
|
|
154
|
+
pointer,
|
|
155
|
+
value,
|
|
156
|
+
...(expectedBeforeDigest === undefined ? {} : { expectedBeforeDigest }),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/*** Escape one JSON Pointer path segment according to RFC 6901. */
|
|
160
|
+
function jsonPointerSegment(value) {
|
|
161
|
+
return value.replaceAll('~', '~0').replaceAll('/', '~1');
|
|
162
|
+
}
|
|
163
|
+
/*** Return the stable Studio package-policy projection identity. */
|
|
164
|
+
function projectionId() {
|
|
165
|
+
return 'generated-package-policy';
|
|
166
|
+
}
|
|
167
|
+
/*** Read the exact static descriptor bytes shipped with this Studio artifact and hash them. */
|
|
168
|
+
function readDescriptorDigest() {
|
|
169
|
+
const descriptorUrl = new URL('../../../../../apm/update.json', import.meta.url);
|
|
170
|
+
return sha256(readFileSync(descriptorUrl, 'utf8'));
|
|
171
|
+
}
|
|
172
|
+
/*** Return one stable SHA-256 hex digest. */
|
|
173
|
+
function sha256(value) {
|
|
174
|
+
return createHash('sha256').update(value).digest('hex');
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=studioUpdateExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioUpdateExtension.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/inbound/studioUpdateExtension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GeneratedPackagePolicy } from '../../../../types/project-updates.js';
|
|
2
|
+
/*** Return Studio-owned generated-app dependency policy from this exact package artifact. */
|
|
3
|
+
export declare function getGeneratedPackagePolicy(): GeneratedPackagePolicy;
|
|
4
|
+
//# sourceMappingURL=getGeneratedPackagePolicy.d.ts.map
|
|
@@ -0,0 +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,sCAAsC,CAAC;AAEnF,6FAA6F;AAC7F,wBAAgB,yBAAyB,IAAI,sBAAsB,CAElE"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { isRecord, readOwnProperty } from '@ankhorage/utility/object';
|
|
4
|
-
/*** Return generated-app dependency
|
|
4
|
+
/*** Return Studio-owned generated-app dependency policy from this exact package artifact. */
|
|
5
5
|
export function getGeneratedPackagePolicy() {
|
|
6
6
|
return GENERATED_PACKAGE_POLICY;
|
|
7
7
|
}
|
|
8
8
|
const REQUIRE = createRequire(import.meta.url);
|
|
9
|
-
const STUDIO_PACKAGE_JSON_URL = new URL('
|
|
9
|
+
const STUDIO_PACKAGE_JSON_URL = new URL('../../../../../package.json', import.meta.url);
|
|
10
10
|
const COLOR_THEORY_PACKAGE_JSON_PATH = REQUIRE.resolve('@ankhorage/color-theory/package.json');
|
|
11
11
|
const SEMVER_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u;
|
|
12
12
|
const BUN_PACKAGE_MANAGER_PATTERN = /^bun@\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u;
|
|
@@ -19,20 +19,22 @@ function readGeneratedPackagePolicy() {
|
|
|
19
19
|
const devDependencies = readRequiredSection(studio, 'devDependencies', 'Studio');
|
|
20
20
|
const peerDependencies = readRequiredSection(studio, 'peerDependencies', 'Studio');
|
|
21
21
|
const colorTheoryDevDependencies = readRequiredSection(colorTheory, 'devDependencies', 'Color Theory');
|
|
22
|
+
const ownerVersion = readStudioVersion(studio);
|
|
22
23
|
return createGeneratedPackagePolicy({
|
|
23
24
|
dependencies,
|
|
24
25
|
devDependencies,
|
|
25
26
|
peerDependencies,
|
|
26
27
|
typesCulori: readRequiredString(colorTheoryDevDependencies, '@types/culori', 'Color Theory'),
|
|
27
|
-
|
|
28
|
+
ownerVersion,
|
|
28
29
|
packageManager: readStudioPackageManager(studio),
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
|
-
/*** Build
|
|
32
|
+
/*** Build generated package policy from validated owner package sections. */
|
|
32
33
|
function createGeneratedPackagePolicy(input) {
|
|
33
34
|
return {
|
|
35
|
+
ownerVersion: input.ownerVersion,
|
|
34
36
|
packageManager: input.packageManager,
|
|
35
|
-
dependencies: readGeneratedRuntimeDependencies(input.dependencies, input.
|
|
37
|
+
dependencies: readGeneratedRuntimeDependencies(input.dependencies, input.ownerVersion),
|
|
36
38
|
devDependencies: {
|
|
37
39
|
ankh: readRequiredString(input.devDependencies, '@ankhorage/ankh', 'Studio'),
|
|
38
40
|
devtools: readRequiredString(input.devDependencies, '@ankhorage/devtools', 'Studio'),
|
|
@@ -107,4 +109,4 @@ function readRequiredString(record, key, ownerName) {
|
|
|
107
109
|
}
|
|
108
110
|
return value;
|
|
109
111
|
}
|
|
110
|
-
//# sourceMappingURL=
|
|
112
|
+
//# sourceMappingURL=getGeneratedPackagePolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGeneratedPackagePolicy.js","sourceRoot":"","sources":["../../../../../src/features/project-updates/adapters/outbound/getGeneratedPackagePolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GeneratedPackageManifest } from '../../../types/project-updates';
|
|
2
|
+
/*** Apply package policy owned by this exact installed Studio artifact. */
|
|
3
|
+
export declare function applyCurrentGeneratedPackagePolicy<T extends GeneratedPackageManifest>(packageJson: T): T;
|
|
4
|
+
//# sourceMappingURL=applyCurrentGeneratedPackagePolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyCurrentGeneratedPackagePolicy.d.ts","sourceRoot":"","sources":["../../../../src/features/project-updates/composition/applyCurrentGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAI/E,2EAA2E;AAC3E,wBAAgB,kCAAkC,CAAC,CAAC,SAAS,wBAAwB,EACnF,WAAW,EAAE,CAAC,GACb,CAAC,CAEH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { getGeneratedPackagePolicy } from '../adapters/outbound/getGeneratedPackagePolicy';
|
|
2
|
+
import { applyGeneratedPackagePolicy } from '../domain/applyGeneratedPackagePolicy';
|
|
3
|
+
/*** Apply package policy owned by this exact installed Studio artifact. */
|
|
4
|
+
export function applyCurrentGeneratedPackagePolicy(packageJson) {
|
|
5
|
+
return applyGeneratedPackagePolicy(packageJson, getGeneratedPackagePolicy());
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=applyCurrentGeneratedPackagePolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyCurrentGeneratedPackagePolicy.js","sourceRoot":"","sources":["../../../../src/features/project-updates/composition/applyCurrentGeneratedPackagePolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAEpF,2EAA2E;AAC3E,MAAM,UAAU,kCAAkC,CAChD,WAAc;IAEd,OAAO,2BAA2B,CAAC,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GeneratedPackageManifest, GeneratedPackagePolicy } from '../../../types/project-updates.js';
|
|
2
|
+
/*** Apply one explicit Studio package policy while preserving all user-owned package manifest entries. */
|
|
3
|
+
export declare function applyGeneratedPackagePolicy<T extends GeneratedPackageManifest>(packageJson: T, policy: GeneratedPackagePolicy): T;
|
|
4
|
+
//# sourceMappingURL=applyGeneratedPackagePolicy.d.ts.map
|
|
@@ -0,0 +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,mCAAmC,CAAC;AAE3C,0GAA0G;AAC1G,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,wBAAwB,EAC5E,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,sBAAsB,GAC7B,CAAC,CAyCH"}
|
package/dist/{host/orchestrator → features/project-updates/domain}/applyGeneratedPackagePolicy.js
RENAMED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export function applyGeneratedPackagePolicy(packageJson) {
|
|
4
|
-
const policy = getGeneratedPackagePolicy();
|
|
1
|
+
/*** Apply one explicit Studio package policy while preserving all user-owned package manifest entries. */
|
|
2
|
+
export function applyGeneratedPackagePolicy(packageJson, policy) {
|
|
5
3
|
const dependencies = {
|
|
6
4
|
...packageJson.dependencies,
|
|
7
5
|
'@ankhorage/contracts': policy.dependencies.contracts,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyGeneratedPackagePolicy.js","sourceRoot":"","sources":["../../../../src/features/project-updates/domain/applyGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAKA,0GAA0G;AAC1G,MAAM,UAAU,2BAA2B,CACzC,WAAc,EACd,MAA8B;IAE9B,MAAM,YAAY,GAAG;QACnB,GAAG,WAAW,CAAC,YAAY;QAC3B,sBAAsB,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS;QACrD,yBAAyB,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW;QAC1D,yBAAyB,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW;QAC1D,sBAAsB,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS;QACrD,oBAAoB,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO;QACjD,GAAG,CAAC,mBAAmB,IAAI,WAAW,CAAC,YAAY;YACjD,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,oBAAoB,IAAI,WAAW,CAAC,YAAY;YAClD,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;YACvD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,0BAA0B,IAAI,WAAW,CAAC,YAAY;YACxD,CAAC,CAAC,EAAE,0BAA0B,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,6BAA6B,IAAI,WAAW,CAAC,YAAY;YAC3D,CAAC,CAAC,EAAE,6BAA6B,EAAE,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;YACxE,CAAC,CAAC,EAAE,CAAC;QACP,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;QAC3C,6BAA6B,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY;QACnE,wCAAwC,EAAE,MAAM,CAAC,gBAAgB,CAAC,WAAW;QAC7E,yCAAyC,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY;QAC/E,yCAAyC,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY;QAC/E,qCAAqC,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ;KACxE,CAAC;IACF,MAAM,eAAe,GAAG;QACtB,GAAG,WAAW,CAAC,eAAe;QAC9B,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI;QAC9C,qBAAqB,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ;QACtD,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ;QAC7C,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,WAAW;QACnD,cAAc,EAAE,MAAM,CAAC,eAAe,CAAC,UAAU;KAClD,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE;QACpC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY;QACZ,eAAe;KAChB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { applyCurrentGeneratedPackagePolicy } from '../../features/project-updates/composition/applyCurrentGeneratedPackagePolicy';
|
|
4
4
|
/*** Reconcile one generated app package manifest against current owner-managed version ranges. */
|
|
5
5
|
export async function syncGeneratedPackagePolicyAsync(projectPath) {
|
|
6
6
|
const packageJsonPath = path.join(projectPath, 'package.json');
|
|
7
7
|
const source = await readFile(packageJsonPath, 'utf8');
|
|
8
8
|
const packageJson = JSON.parse(source);
|
|
9
9
|
assertGeneratedPackageManifest(packageJson);
|
|
10
|
-
const synchronized =
|
|
10
|
+
const synchronized = applyCurrentGeneratedPackagePolicy(packageJson);
|
|
11
11
|
const nextSource = `${JSON.stringify(synchronized, null, 2)}\n`;
|
|
12
12
|
if (source === nextSource)
|
|
13
13
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncGeneratedPackagePolicyAsync.js","sourceRoot":"","sources":["../../../src/host/orchestrator/syncGeneratedPackagePolicyAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"syncGeneratedPackagePolicyAsync.js","sourceRoot":"","sources":["../../../src/host/orchestrator/syncGeneratedPackagePolicyAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kCAAkC,EAAE,MAAM,+EAA+E,CAAC;AAEnI,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,WAAmB;IACvE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,WAAW,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,kCAAkC,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAChE,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO;IAClC,MAAM,SAAS,CAAC,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAQD,2FAA2F;AAC3F,SAAS,8BAA8B,CAAC,KAAc;IACpD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACxF,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,yEAAyE;AACzE,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { applyCurrentGeneratedPackagePolicy } from '../../features/project-updates/composition/applyCurrentGeneratedPackagePolicy';
|
|
2
2
|
import { getPackageJson as getBasePackageJson } from './templateSources';
|
|
3
3
|
export { getAndroidRunTs, getAppConfigTs, getEasJson, getMetroConfigJs, getMetroEmptyModuleJs, getTsConfigJson, } from './templateSources';
|
|
4
4
|
/*** Generate one app package manifest with current owner-managed dependency policy applied. */
|
|
5
5
|
export function getPackageJson(args) {
|
|
6
|
-
return
|
|
6
|
+
return applyCurrentGeneratedPackagePolicy(getBasePackageJson(args));
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/host/orchestrator/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/host/orchestrator/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,+EAA+E,CAAC;AACnI,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,+FAA+F;AAC/F,MAAM,UAAU,cAAc,CAAC,IAA8C;IAC3E,OAAO,kCAAkC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1,4 +1,41 @@
|
|
|
1
1
|
import type { ApmApplyCancellationPort, ApmApplyProgressPort, ApmApplyStepPort, ApmPlanProtocolPort, ApmStatusExtensionEvidencePort, ApmVerifyStepPort } from '@ankhorage/apm/types';
|
|
2
|
+
/*** Generated app package shape owned by Studio package policy projection. */
|
|
3
|
+
export interface GeneratedPackageManifest {
|
|
4
|
+
readonly packageManager: string;
|
|
5
|
+
readonly dependencies: Readonly<Record<string, string>>;
|
|
6
|
+
readonly devDependencies: Readonly<Record<string, string>>;
|
|
7
|
+
}
|
|
8
|
+
/*** Studio-owned dependency policy frozen to one exact Studio package artifact. */
|
|
9
|
+
export interface GeneratedPackagePolicy {
|
|
10
|
+
readonly ownerVersion: string;
|
|
11
|
+
readonly packageManager: string;
|
|
12
|
+
readonly dependencies: {
|
|
13
|
+
readonly contracts: string;
|
|
14
|
+
readonly dataSources: string;
|
|
15
|
+
readonly expoRuntime: string;
|
|
16
|
+
readonly navigator: string;
|
|
17
|
+
readonly runtime: string;
|
|
18
|
+
readonly studio: string;
|
|
19
|
+
readonly utility: string;
|
|
20
|
+
readonly supabaseAuth: string;
|
|
21
|
+
readonly supabaseStorage: string;
|
|
22
|
+
readonly zora: string;
|
|
23
|
+
};
|
|
24
|
+
readonly devDependencies: {
|
|
25
|
+
readonly ankh: string;
|
|
26
|
+
readonly devtools: string;
|
|
27
|
+
readonly typesBun: string;
|
|
28
|
+
readonly typesCulori: string;
|
|
29
|
+
readonly typesReact: string;
|
|
30
|
+
};
|
|
31
|
+
readonly peerDependencies: {
|
|
32
|
+
readonly nativePicker: string;
|
|
33
|
+
readonly fontawesome: string;
|
|
34
|
+
readonly fontawesome5: string;
|
|
35
|
+
readonly fontawesome6: string;
|
|
36
|
+
readonly ionicons: string;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
2
39
|
/*** Optional Studio-owned ports composed around the released APM project update lifecycle. */
|
|
3
40
|
export interface ProjectUpdateServiceOptions {
|
|
4
41
|
readonly extensions?: ApmStatusExtensionEvidencePort;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-updates.d.ts","sourceRoot":"","sources":["../../src/types/project-updates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,8BAA8B,EAC9B,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,8FAA8F;AAC9F,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,8BAA8B,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,wBAAwB,CAAC;CAClD"}
|
|
1
|
+
{"version":3,"file":"project-updates.d.ts","sourceRoot":"","sources":["../../src/types/project-updates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,8BAA8B,EAC9B,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5D;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,gBAAgB,EAAE;QACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,8FAA8F;AAC9F,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,8BAA8B,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,wBAAwB,CAAC;CAClD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/studio",
|
|
3
|
-
"version": "2.
|
|
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",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"types": "./dist/root.d.ts",
|
|
20
20
|
"sideEffects": false,
|
|
21
21
|
"files": [
|
|
22
|
+
"apm",
|
|
22
23
|
"dist",
|
|
23
24
|
"README.md",
|
|
24
25
|
"LICENSE"
|
|
@@ -28,6 +29,10 @@
|
|
|
28
29
|
"types": "./dist/root.d.ts",
|
|
29
30
|
"import": "./dist/root.js"
|
|
30
31
|
},
|
|
32
|
+
"./apm": {
|
|
33
|
+
"types": "./dist/apm.d.ts",
|
|
34
|
+
"import": "./dist/apm.js"
|
|
35
|
+
},
|
|
31
36
|
"./app": {
|
|
32
37
|
"types": "./dist/app/index.d.ts",
|
|
33
38
|
"import": "./dist/app/index.js"
|
|
@@ -154,11 +159,15 @@
|
|
|
154
159
|
"studio.projects.create",
|
|
155
160
|
"studio.projects.delete",
|
|
156
161
|
"studio.projects.sync"
|
|
157
|
-
]
|
|
162
|
+
],
|
|
163
|
+
"apm": {
|
|
164
|
+
"protocolVersion": 1,
|
|
165
|
+
"descriptor": "./apm/update.json"
|
|
166
|
+
}
|
|
158
167
|
},
|
|
159
168
|
"scripts": {
|
|
160
169
|
"build": "tsc -p tsconfig.build.json",
|
|
161
|
-
"typecheck": "
|
|
170
|
+
"typecheck": "bun run check-types",
|
|
162
171
|
"dev": "bun run --no-orphans dev:host & bun run --no-orphans dev:studio",
|
|
163
172
|
"dev:studio": "bun install --cwd apps/studio --frozen-lockfile && bun run --cwd apps/studio web",
|
|
164
173
|
"typecheck:studio": "bun install --cwd apps/studio --frozen-lockfile && bun run --cwd apps/studio typecheck",
|
|
@@ -187,7 +196,10 @@
|
|
|
187
196
|
"version-packages": "ankhorage-changeset version",
|
|
188
197
|
"dev:host": "bun src/host/http/standalone.ts",
|
|
189
198
|
"test:host-smoke": "bun test src/host/hostLifecycle.smoke.test.ts",
|
|
190
|
-
"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"
|
|
191
203
|
},
|
|
192
204
|
"keywords": [
|
|
193
205
|
"ankhorage",
|
|
@@ -251,7 +263,7 @@
|
|
|
251
263
|
},
|
|
252
264
|
"devDependencies": {
|
|
253
265
|
"@ankhorage/ankh": "^0.8.11",
|
|
254
|
-
"@ankhorage/devtools": "^1.
|
|
266
|
+
"@ankhorage/devtools": "^1.15.0",
|
|
255
267
|
"@ankhorage/paradox": "^0.1.24",
|
|
256
268
|
"@types/bun": "^1.4.1",
|
|
257
269
|
"@types/node": "^24.13.3",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/*** Apply owner-managed package ranges to one generated app package manifest. */
|
|
2
|
-
export declare function applyGeneratedPackagePolicy<T extends GeneratedPackageManifest>(packageJson: T): T;
|
|
3
|
-
interface GeneratedPackageManifest {
|
|
4
|
-
readonly packageManager: string;
|
|
5
|
-
readonly dependencies: Readonly<Record<string, string>>;
|
|
6
|
-
readonly devDependencies: Readonly<Record<string, string>>;
|
|
7
|
-
}
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=applyGeneratedPackagePolicy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"applyGeneratedPackagePolicy.d.ts","sourceRoot":"","sources":["../../../src/host/orchestrator/applyGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,wBAAwB,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CA0CjG;AAED,UAAU,wBAAwB;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"applyGeneratedPackagePolicy.js","sourceRoot":"","sources":["../../../src/host/orchestrator/applyGeneratedPackagePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,iFAAiF;AACjF,MAAM,UAAU,2BAA2B,CAAqC,WAAc;IAC5F,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAG;QACnB,GAAG,WAAW,CAAC,YAAY;QAC3B,sBAAsB,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS;QACrD,yBAAyB,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW;QAC1D,yBAAyB,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW;QAC1D,sBAAsB,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS;QACrD,oBAAoB,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO;QACjD,GAAG,CAAC,mBAAmB,IAAI,WAAW,CAAC,YAAY;YACjD,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,oBAAoB,IAAI,WAAW,CAAC,YAAY;YAClD,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;YACvD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,0BAA0B,IAAI,WAAW,CAAC,YAAY;YACxD,CAAC,CAAC,EAAE,0BAA0B,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,6BAA6B,IAAI,WAAW,CAAC,YAAY;YAC3D,CAAC,CAAC,EAAE,6BAA6B,EAAE,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;YACxE,CAAC,CAAC,EAAE,CAAC;QACP,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;QAC3C,6BAA6B,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY;QACnE,wCAAwC,EAAE,MAAM,CAAC,gBAAgB,CAAC,WAAW;QAC7E,yCAAyC,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY;QAC/E,yCAAyC,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY;QAC/E,qCAAqC,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ;KACxE,CAAC;IACF,MAAM,eAAe,GAAG;QACtB,GAAG,WAAW,CAAC,eAAe;QAC9B,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI;QAC9C,qBAAqB,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ;QACtD,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ;QAC7C,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,WAAW;QACnD,cAAc,EAAE,MAAM,CAAC,eAAe,CAAC,UAAU;KAClD,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE;QACpC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY;QACZ,eAAe;KAChB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*** Return generated-app dependency ranges from Renovate-managed owner package metadata. */
|
|
2
|
-
export declare function getGeneratedPackagePolicy(): GeneratedPackagePolicy;
|
|
3
|
-
interface GeneratedPackagePolicy {
|
|
4
|
-
readonly packageManager: string;
|
|
5
|
-
readonly dependencies: {
|
|
6
|
-
readonly contracts: string;
|
|
7
|
-
readonly dataSources: string;
|
|
8
|
-
readonly expoRuntime: string;
|
|
9
|
-
readonly navigator: string;
|
|
10
|
-
readonly runtime: string;
|
|
11
|
-
readonly studio: string;
|
|
12
|
-
readonly utility: string;
|
|
13
|
-
readonly supabaseAuth: string;
|
|
14
|
-
readonly supabaseStorage: string;
|
|
15
|
-
readonly zora: string;
|
|
16
|
-
};
|
|
17
|
-
readonly devDependencies: {
|
|
18
|
-
readonly ankh: string;
|
|
19
|
-
readonly devtools: string;
|
|
20
|
-
readonly typesBun: string;
|
|
21
|
-
readonly typesCulori: string;
|
|
22
|
-
readonly typesReact: string;
|
|
23
|
-
};
|
|
24
|
-
readonly peerDependencies: {
|
|
25
|
-
readonly nativePicker: string;
|
|
26
|
-
readonly fontawesome: string;
|
|
27
|
-
readonly fontawesome5: string;
|
|
28
|
-
readonly fontawesome6: string;
|
|
29
|
-
readonly ionicons: string;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export {};
|
|
33
|
-
//# sourceMappingURL=generatedPackagePolicy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generatedPackagePolicy.d.ts","sourceRoot":"","sources":["../../../src/host/orchestrator/generatedPackagePolicy.ts"],"names":[],"mappings":"AAKA,4FAA4F;AAC5F,wBAAgB,yBAAyB,IAAI,sBAAsB,CAElE;AASD,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,gBAAgB,EAAE;QACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generatedPackagePolicy.js","sourceRoot":"","sources":["../../../src/host/orchestrator/generatedPackagePolicy.ts"],"names":[],"mappings":"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"}
|