extension-create 4.1.35 → 4.1.36
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/dist/lib/messaging.d.ts +1 -0
- package/dist/module.cjs +1 -1
- package/dist/steps/import-external-template.d.ts +1 -1
- package/dist/test-template-javascript/.extension-create.json +2 -2
- package/dist/test-template-javascript/package.json +1 -1
- package/package.json +1 -1
- package/templates/javascript/STORE.md +167 -41
package/dist/lib/messaging.d.ts
CHANGED
|
@@ -113,6 +113,7 @@ export declare const CODES: {
|
|
|
113
113
|
readonly E_LOCALES_LAYOUT: 'E_LOCALES_LAYOUT';
|
|
114
114
|
readonly E_WAR_INVALID: 'E_WAR_INVALID';
|
|
115
115
|
readonly E_DEV_SESSION_DIST_SHARED: 'E_DEV_SESSION_DIST_SHARED';
|
|
116
|
+
readonly E_PROD_LOOPBACK_ORIGIN: 'E_PROD_LOOPBACK_ORIGIN';
|
|
116
117
|
readonly E_BACKGROUND_REQUIRED: 'E_BACKGROUND_REQUIRED';
|
|
117
118
|
readonly E_CONTENT_SCRIPT_SYNTAX: 'E_CONTENT_SCRIPT_SYNTAX';
|
|
118
119
|
readonly E_NO_ENTRYPOINTS: 'E_NO_ENTRYPOINTS';
|
package/dist/module.cjs
CHANGED
|
@@ -789,7 +789,7 @@ const NETWORK_TIMEOUT_MS = (()=>{
|
|
|
789
789
|
return Number.isFinite(raw) && raw > 0 ? raw : 60000;
|
|
790
790
|
})();
|
|
791
791
|
const CODELOAD_BASE = 'https://codeload.github.com/extension-js/examples/zip';
|
|
792
|
-
const DEFAULT_TEMPLATES_REF = '
|
|
792
|
+
const DEFAULT_TEMPLATES_REF = '6443985200d0a27526662fc7be5d13fe66a0fa2b';
|
|
793
793
|
const BUNDLED_TEMPLATES = [
|
|
794
794
|
"javascript"
|
|
795
795
|
];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const DEFAULT_TEMPLATES_REF = "
|
|
1
|
+
export declare const DEFAULT_TEMPLATES_REF = "6443985200d0a27526662fc7be5d13fe66a0fa2b";
|
|
2
2
|
export declare const BUNDLED_TEMPLATES: readonly string[];
|
|
3
3
|
export declare const DEFAULT_TEMPLATE_NAME = "typescript";
|
|
4
4
|
export declare const OFFLINE_FALLBACK_TEMPLATE = "javascript";
|
package/package.json
CHANGED
|
@@ -1,41 +1,82 @@
|
|
|
1
1
|
# Store metadata
|
|
2
2
|
|
|
3
|
-
Starter file generated from this template's manifest.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
Starter file generated from this template's manifest. STORE.md is what
|
|
4
|
+
`extension_submit sync-listing` reads to fill the Chrome Web Store, Firefox
|
|
5
|
+
Add-ons, Edge Add-ons and Mac App Store listings, and what the store
|
|
6
|
+
preflights check. Every store asks for this material at submission time, so
|
|
7
|
+
keep it current as the code changes instead of rewriting it at the end. A
|
|
8
|
+
line marked TODO is a fact only the owner can supply: the file shows what is
|
|
9
|
+
missing and never invents listing copy, and a value that still starts with
|
|
10
|
+
TODO is skipped, not sent. Items a store takes only on its own dashboard
|
|
11
|
+
(Chrome promo tiles and data-use answers, Edge logo, tiles and properties,
|
|
12
|
+
Apple's App Privacy and age rating) stay by hand and are listed under each
|
|
13
|
+
store below. The HTML comments carry each field's format and limits, and the
|
|
14
|
+
readers ignore them.
|
|
15
|
+
|
|
16
|
+
Last updated: 2026-10-24
|
|
11
17
|
|
|
12
18
|
## Listing
|
|
13
19
|
|
|
14
20
|
- Name: JavaScript Sidebar Example
|
|
21
|
+
<!-- The store title, 100 characters at most on every store. -->
|
|
15
22
|
- Summary: Adds a sidebar panel to the browser.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
<!-- Chrome's summary, 132 characters at most. It doubles as the Safari
|
|
24
|
+
subtitle only when it fits 30. -->
|
|
25
|
+
- Subtitle: TODO a 30 character App Store subtitle
|
|
26
|
+
<!-- App Store subtitle, 30 characters at most. Without it the Safari push
|
|
27
|
+
leaves the field empty. -->
|
|
28
|
+
- Description:
|
|
29
|
+
|
|
30
|
+
TODO two or three short paragraphs of user benefits. Describe what the
|
|
31
|
+
user sees and gains, not how the code works. Keep every paragraph indented
|
|
32
|
+
like this one so the readers take them as one field.
|
|
33
|
+
|
|
34
|
+
- Category: TODO one per store, for example Productivity (Chrome Web Store,
|
|
35
|
+
Firefox Add-ons, Edge Add-ons), Utilities (App Store)
|
|
36
|
+
<!-- One category per store, the store names in parentheses stay out of
|
|
37
|
+
the value. One of them must be an App Store category (Productivity or
|
|
38
|
+
Utilities): Apple refuses an upload without a primary category. -->
|
|
39
|
+
- Language: en
|
|
40
|
+
- License: MIT
|
|
41
|
+
<!-- A bare SPDX identifier with no trailing period: "MIT." once reached
|
|
42
|
+
AMO as the license. -->
|
|
43
|
+
- Support email: TODO the address users and reviewers write to
|
|
44
|
+
- Homepage: TODO the project or company site URL
|
|
45
|
+
- Search terms: TODO up to seven terms, comma separated
|
|
46
|
+
<!-- Comma list. Edge takes at most 7 terms and 21 words in all, and
|
|
47
|
+
Safari keywords are 100 characters in all. -->
|
|
48
|
+
- Screenshots:
|
|
49
|
+
1. TODO screenshots/01.png
|
|
50
|
+
<!-- One PNG path per numbered line, relative to the project. Chrome takes
|
|
51
|
+
1280x800 or 640x400, Edge 1280x800 or 640x480, the App Store exactly
|
|
52
|
+
1280x800, 1440x900, 2560x1600 or 2880x1800 in RGB without alpha and
|
|
53
|
+
showing the extension in real Safari (a 2880x1800 capture of a Safari
|
|
54
|
+
window is the simplest way). Chrome and Edge also show 440x280 and
|
|
55
|
+
1400x560 promo tiles. -->
|
|
21
56
|
|
|
22
57
|
## Privacy and data use
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
58
|
+
|
|
59
|
+
- Privacy policy URL: TODO (Apple requires one on every app, Chrome and Edge
|
|
60
|
+
once any data is handled)
|
|
61
|
+
<!-- The only place this URL lives. The readers take the first http or
|
|
62
|
+
https address on this line, so leave no sample address here. -->
|
|
63
|
+
- Data collected: none
|
|
64
|
+
<!-- Every kind of data the extension collects, stores or sends, or none.
|
|
65
|
+
Chrome, Edge and Apple each ask it again on their dashboards. -->
|
|
66
|
+
- Firefox data collection: none
|
|
67
|
+
<!-- Mirrors browser_specific_settings.gecko.data_collection_permissions
|
|
68
|
+
in the manifest. AMO reads the manifest, so the two must agree. -->
|
|
69
|
+
|
|
70
|
+
Per store answer sheets, filled from the two lines above:
|
|
71
|
+
|
|
72
|
+
- Chrome Web Store: the data-usage checkboxes and the three certifications
|
|
73
|
+
on the Privacy practices tab, answered by hand on the developer dashboard.
|
|
74
|
+
- Firefox Add-ons: the manifest's data_collection_permissions is the
|
|
75
|
+
declaration, and AMO reads it from the package.
|
|
76
|
+
- Edge Add-ons: the nine data categories and the three certifications on the
|
|
77
|
+
Privacy page, typed once on Partner Center.
|
|
78
|
+
- App Store: App Privacy, "Data Not Collected" when the line above says
|
|
79
|
+
none, answered by hand in App Store Connect.
|
|
39
80
|
|
|
40
81
|
## Chrome Web Store
|
|
41
82
|
|
|
@@ -45,31 +86,116 @@ Adds a sidebar panel to the browser.
|
|
|
45
86
|
|
|
46
87
|
### Permissions justification
|
|
47
88
|
|
|
48
|
-
|
|
49
|
-
|
|
89
|
+
<!-- One bullet per permission, host permission and content script match
|
|
90
|
+
the manifest requests, as the Chrome dashboard and the Edge Privacy page
|
|
91
|
+
ask them. A reason that still starts with TODO is not sent. "Needed for
|
|
92
|
+
the extension to work" fails review on every store. -->
|
|
93
|
+
|
|
94
|
+
- sidePanel: Renders the extension's main interface in the browser side
|
|
95
|
+
panel. Requested on Chromium only.
|
|
96
|
+
- tabs: TODO reason
|
|
97
|
+
- Content script match <all_urls>: The content script runs on the pages the
|
|
98
|
+
user visits to render the extension's on-page interface. Narrow this to
|
|
99
|
+
the specific sites your extension needs before submitting.
|
|
100
|
+
|
|
101
|
+
Remote code: none. Every script ships inside the package, which is the
|
|
102
|
+
answer to the remote code question on Chrome and Edge.
|
|
103
|
+
|
|
104
|
+
### Test instructions
|
|
105
|
+
|
|
106
|
+
TODO the steps a reviewer follows to see the extension work, with test
|
|
107
|
+
credentials when sign-in is required. The Firefox reviewer notes and the
|
|
108
|
+
Edge certification notes below take the same steps.
|
|
50
109
|
|
|
51
110
|
## Firefox Add-ons
|
|
52
111
|
|
|
53
112
|
### Reviewer notes
|
|
54
113
|
|
|
55
|
-
TODO steps a reviewer
|
|
56
|
-
credentials
|
|
57
|
-
|
|
58
|
-
|
|
114
|
+
TODO the steps a reviewer follows to exercise the extension, with test
|
|
115
|
+
credentials when sign-in is required. Keep the build paragraph below: AMO
|
|
116
|
+
wants a reproducible build for a bundled package.
|
|
117
|
+
|
|
118
|
+
Build from source with Node 22.12.0 and npm 10.9.0 (replace both with the
|
|
119
|
+
output of node --version and npm --version on the machine that built the
|
|
120
|
+
upload): run npm install, then npx extension build --browser firefox. The
|
|
121
|
+
upload is dist/firefox, byte for byte. With the Firefox source archive
|
|
122
|
+
setting on in extension.dev, the platform attaches the repository at the
|
|
123
|
+
built commit, so no separate source zip is uploaded.
|
|
59
124
|
|
|
60
125
|
### Release notes
|
|
61
126
|
|
|
62
|
-
TODO
|
|
127
|
+
TODO what changed for users in this version, in their words. Write the notes
|
|
128
|
+
here rather than pointing at another section: a pointer reaches AMO
|
|
129
|
+
verbatim.
|
|
63
130
|
|
|
64
131
|
## Edge Add-ons
|
|
65
132
|
|
|
133
|
+
The package may hold no compressed file: Partner Center refuses any .gz,
|
|
134
|
+
.zip or other archive inside it, so vendor such assets uncompressed. Logo,
|
|
135
|
+
promo tiles, screenshots, properties and privacy answers are typed once on
|
|
136
|
+
Partner Center, because the Publish API takes only packages.
|
|
137
|
+
|
|
66
138
|
### Certification notes
|
|
67
139
|
|
|
68
|
-
TODO
|
|
69
|
-
|
|
70
|
-
|
|
140
|
+
TODO the steps the certification team follows to test the extension, with
|
|
141
|
+
test credentials when sign-in is required. The Firefox reviewer notes fit
|
|
142
|
+
here in most cases: paste them rather than pointing at them.
|
|
143
|
+
|
|
144
|
+
### Dashboard checklist
|
|
145
|
+
|
|
146
|
+
What the Publish API cannot set, typed once on Partner Center:
|
|
147
|
+
|
|
148
|
+
- Store logo, 300x300 PNG.
|
|
149
|
+
- Promo tiles, 440x280 and 1400x560, shown on the store page.
|
|
150
|
+
- Properties page: the answers on personal information and mature content.
|
|
151
|
+
- Privacy page: the nine data categories and three certifications, the same
|
|
152
|
+
answers as the Privacy and data use section.
|
|
153
|
+
- Optional YouTube URL.
|
|
154
|
+
|
|
155
|
+
## Safari (Mac App Store)
|
|
156
|
+
|
|
157
|
+
- Bundle identifier: TODO com.example.my-extension
|
|
158
|
+
<!-- Reverse DNS, permanent once the first build reaches App Store
|
|
159
|
+
Connect. -->
|
|
160
|
+
- Review contact name: TODO
|
|
161
|
+
- Review contact email: TODO
|
|
162
|
+
- Review contact phone: TODO
|
|
163
|
+
|
|
164
|
+
### Reviewer notes
|
|
165
|
+
|
|
166
|
+
TODO how to turn the extension on: open Safari, choose Safari, Settings,
|
|
167
|
+
Extensions, tick the extension, then allow it on the sites it needs. Add
|
|
168
|
+
test credentials when sign-in is required.
|
|
169
|
+
|
|
170
|
+
### Release notes
|
|
171
|
+
|
|
172
|
+
TODO what's new in this version, in the user's words. Required from the
|
|
173
|
+
second version on.
|
|
174
|
+
|
|
175
|
+
### Age rating
|
|
176
|
+
|
|
177
|
+
Apple's questionnaire is answered in full on every push. None applies unless
|
|
178
|
+
a line below says otherwise.
|
|
179
|
+
|
|
180
|
+
- Violence, mature or suggestive themes, profanity, horror, medical or drug
|
|
181
|
+
references, gambling, contests: none
|
|
182
|
+
- Parental controls, age assurance: none
|
|
183
|
+
- Unrestricted web access: none
|
|
184
|
+
- User generated content, social media, messaging: none
|
|
185
|
+
- Advertising: none
|
|
186
|
+
- Loot boxes or similar in-app purchases: none
|
|
187
|
+
|
|
188
|
+
App Privacy, and today the age rating and the availability in all 175
|
|
189
|
+
territories as well, are confirmed by hand in App Store Connect. Run the
|
|
190
|
+
converted app locally with `npx extension build --browser safari --bundle-id
|
|
191
|
+
<id> --development-team <TEAM>`: an ad-hoc build without a team stops
|
|
192
|
+
answering after Safari relaunches.
|
|
71
193
|
|
|
72
194
|
## Version history
|
|
73
195
|
|
|
74
|
-
|
|
75
|
-
|
|
196
|
+
One line per version and store attempt with its outcome, newest first, for
|
|
197
|
+
example "0.1.0: Chrome draft uploaded 2026-10-21, AMO upload refused 401 bad
|
|
198
|
+
key pair, Edge draft pending".
|
|
199
|
+
|
|
200
|
+
- 1.0.0 (unreleased): initial version from the javascript template. Not yet
|
|
201
|
+
submitted to any store.
|